Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melakukan Muat Naik Fail HTTP POST dalam C#?

Bagaimana untuk Melakukan Muat Naik Fail HTTP POST dalam C#?

DDD
Lepaskan: 2025-01-11 19:32:44
asal
623 orang telah melayarinya

How to Perform HTTP POST File Uploads in C#?

Muat naik fail HTTP POST dalam C#

Menghantar fail melalui HTTP POST ialah tugas biasa dalam aplikasi web. Dalam C#, anda boleh menggunakan HttpWebRequest kelas dan MultipartFormDataContent objek untuk mencapai fungsi ini.

Buat objek HttpWebRequest

Mula-mula, cipta objek HttpWebRequest dan nyatakan URI pelayan web. Kemudian, tetapkan atribut Method kepada "POST" dan atribut ContentType kepada jenis kandungan yang sesuai bagi fail yang dihantar.

HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = file.ContentType;
Salin selepas log masuk

Fail sedia untuk dimuat naik

Untuk menghantar fail, cipta objek MultipartFormDataContent dan masukkannya dalam permintaan. MultipartFormDataContent Membolehkan anda menghantar kedua-dua data borang dan data binari dalam satu permintaan.

using (var formData = new MultipartFormDataContent())
{
    formData.Add(new StringContent(file.Name), "file");
    formData.Add(new StreamContent(file.Content), file.Name, file.Name);
}
Salin selepas log masuk

Hantar permintaan

Akhir sekali, gunakan GetResponse() atau GetResponseAsync() untuk menghantar permintaan ke pelayan web.

HttpWebResponse response = null;

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
    // 处理异常
}
Salin selepas log masuk

Alternatif untuk .NET 4.0 dan ke bawah

Untuk .NET 4.0 dan ke bawah, anda boleh menggunakan pakej Microsoft.Net.Http daripada NuGet untuk memudahkan proses muat naik fail:

using System.Net.Http;
using System.Net.Http.Headers;

private async Task<System.IO.Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte[] paramFileBytes)
{
    using (var client = new HttpClient())
    {
        using (var formData = new MultipartFormDataContent())
        {
            formData.Add(new StringContent(paramString), "param1");
            formData.Add(new StreamContent(paramFileStream), "file1");
            formData.Add(new ByteArrayContent(paramFileBytes), "file2");

            var response = await client.PostAsync(actionUrl, formData);
            if (!response.IsSuccessStatusCode)
            {
                return null;
            }
            return await response.Content.ReadAsStreamAsync();
        }
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Muat Naik Fail HTTP POST dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan