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
575 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.

<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = file.ContentType;</code>
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.

<code class="language-csharp">using (var formData = new MultipartFormDataContent())
{
    formData.Add(new StringContent(file.Name), "file");
    formData.Add(new StreamContent(file.Content), file.Name, file.Name);
}</code>
Salin selepas log masuk

Hantar permintaan

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

<code class="language-csharp">HttpWebResponse response = null;

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
    // 处理异常
}</code>
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:

<code class="language-csharp">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();
        }
    }
}</code>
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!

sumber:php.cn
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