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>
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>
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>
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>
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!