ホームページ > バックエンド開発 > C++ > C# で HTTP POST ファイルのアップロードを実行するにはどうすればよいですか?

C# で HTTP POST ファイルのアップロードを実行するにはどうすればよいですか?

DDD
リリース: 2025-01-11 19:32:44
オリジナル
533 人が閲覧しました

How to Perform HTTP POST File Uploads in C#?

C# での HTTP POST ファイルのアップロード

HTTP POST 経由でファイルを送信することは、Web アプリケーションでは一般的なタスクです。 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 1 つのリクエストでフォーム データとバイナリ データの両方を送信できます。

<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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート