odai_dahmos Ответов: 3

Как загрузить файл на веб-сервер с помощью C# windows form


Мне нужна помощь предположим, что у меня есть форма windows, содержащая открытый диалог и кнопку ineed to

загрузить файл на веб-сервер (http://localhost:79/uploade/) как я могу это сделать


Помоги мне

пожалуйста

Sergey Alexandrovich Kryukov

Пожалуйста, удалите "Apache "из тегов, добавьте"WinForms". Вы должны быть наиболее заинтересованы в этих тегах, это влияет на ваши шансы получить полезный совет (в данном случае вы его уже получили :-)

Не путайте людей - у вас уже есть один совершенно неуместный ответ.
--СА

3 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Вам нужно использовать класс System.Net.HttpWebRequest с помощью метода HTTP-запроса "POST".

Пожалуйста, смотрите:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx[^],
http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx[^].

Вы можете найти образец загрузки здесь: http://stackoverflow.com/questions/566462/upload-files-with-httpwebrequest-multipart-form-data[^].

—СА


Sridhar Patnayak

Самый быстрый способ реализации-загрузить образец из stackoverflow-5+

Sergey Alexandrovich Kryukov

Я бы тщательно изучил код, Но да, в основном.
Спасибо, Шридхар.
--СА

NeptuneHACK!

Мои 5 как обычно ^_^

Sergey Alexandrovich Kryukov

Спасибо!
—СА

odai_dahmos

спасибо

Sergey Alexandrovich Kryukov

Добро пожаловать. Примете ли вы ответ формально (зеленая кнопка).
—СА

Рейтинг:
2

Sridhar Patnayak

Вы можете загрузить файл с помощью метода UploadFile WebClient.
Пожалуйста, обратитесь к библиотеке MSDN для получения более подробной информации.

класс WebClient
http://msdn.microsoft.com/en-us/library/system.net.webclient(против.80).aspx-файл[^]

служба WebClient.Метод UploadFile
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadfile(против.80).aspx-файл[^]

служба WebClient.Метод UploadFile (String, String)
http://msdn.microsoft.com/en-us/library/36s52zhs(против.80).aspx-файл[^]

Спасибо


Sergey Alexandrovich Kryukov

Да, я предоставил решение, Пожалуйста, смотрите, но это еще один способ, который должен работать, мой 5.
--СА

odai_dahmos

спасибо

Рейтинг:
1

1d1

в форме windows:

private void uploadButton_Click(object sender, EventArgs e)
{
    var openFileDialog = new OpenFileDialog();
    var dialogResult = openFileDialog.ShowDialog();    
    if (dialogResult != DialogResult.OK) return;              
    Upload(openFileDialog.FileName);
}

private void Upload(string fileName)
{
    var client = new WebClient();
    var uri = new Uri("http://www.yoursite.com/Uploader/");
    {
        client.Headers.Add("fileName", System.IO.Path.GetFileName(fileName));
        client.UploadFileAsync(uri, fileName);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

в серверах:
[HttpPost]
public async Task<object> Uploader()
{
    var file = await Request.Content.ReadAsByteArrayAsync();
    var fileName =Request.Headers.GetValues("fileName").FirstOrDefault();
    var filePath = "/upload/files/";
    try
    {
        File.WriteAllBytes(HttpContext.Current.Server.MapPath(filePath) + fileName, file);           
    }
    catch (Exception ex)
    {
        // ignored
    }

    return null;
}


mukesh889

код не завершен