首頁 > 後端開發 > C++ > 如何在 C# 中執行 HTTP POST 檔案上傳?

如何在 C# 中執行 HTTP POST 檔案上傳?

DDD
發布: 2025-01-11 19:32:44
原創
532 人瀏覽過

How to Perform HTTP POST File Uploads in C#?

C# 中的 HTTP POST 檔案上傳

在 Web 應用程式中,透過 HTTP POST 傳送檔案是一項常見的任務。在 C# 中,可以使用 HttpWebRequest 類別和 MultipartFormDataContent 物件來實現此功能。

建立 HttpWebRequest 物件

首先,建立一個 HttpWebRequest 物件並指定 Web 伺服器的 URI。然後,將 Method 屬性設為 "POST",並將 ContentType 屬性設定為正在傳送檔案的適當內容類型。

<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = file.ContentType;</code>
登入後複製

準備上傳的檔案

要傳送文件,請建立一個 MultipartFormDataContent 物件並將其包含在請求中。 MultipartFormDataContent 允許您在一個請求中同時傳送表單資料和二進位資料。

<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>
登入後複製

發送請求

最後,使用 GetResponse()GetResponseAsync() 將請求傳送到 Web 伺服器。

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

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
    // 处理异常
}</code>
登入後複製

.NET 4.0 及以下版本的替代方案

對於 .NET 4.0 及以下版本,可以使用 NuGet 中的 Microsoft.Net.Http 套件來簡化文件上傳過程:

<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>
登入後複製

以上是如何在 C# 中執行 HTTP POST 檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板