ホームページ >バックエンド開発 >C++ >ASP.NET MVC Web APIでファイルPOSTを受け入れるにはどうすればよいですか?

ASP.NET MVC Web APIでファイルPOSTを受け入れるにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-24 01:26:09436ブラウズ

How to Accept File POSTs in ASP.NET MVC Web API?

ASP.NET Web API でのファイル アップロードの処理

ASP.NET Web API では、従来の ASP.NET MVC メソッドとは異なり、ファイルのアップロードを処理するための特定のアプローチが必要です。 HttpPostedFile パラメータには直接互換性がありません。 この解決策には、マルチパート コンテンツを活用することが含まれます。

マルチパート コンテンツ: ファイル アップロードの鍵

Web API ファイルのアップロードにはマルチパート コンテンツが不可欠です。 単一の HTTP リクエスト内でテキスト データとファイル データを効率的に結合します。

ファイルアップロード用のコントローラーアクションの構築

Task<IHttpActionResult> を使用したコントローラー アクションは、非同期ファイル処理に最適です。 以下に例を示します:

<code class="language-csharp">[HttpPost("api/upload")]
public async Task<IHttpActionResult> Upload()
{
    if (!Request.Content.IsMimeMultipartContent())
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);

    var provider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(provider);

    foreach (var file in provider.Contents)
    {
        var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
        var buffer = await file.ReadAsByteArrayAsync();

        // File processing logic here (e.g., save to disk, database, etc.)
    }

    return Ok();
}</code>

コードの説明:

  1. IsMimeMultipartContent(): リクエストのマルチパート コンテンツ タイプを検証します。
  2. MultipartMemoryStreamProvider: メモリ内のマルチパート データを管理します。
  3. ReadAsMultipartAsync(): マルチパート データを個々のコンポーネントに解析します。
  4. ファイルの反復: コードはファイルの各部分を反復して、ファイル名を抽出し、データをバイト配列に読み取ります。
  5. ファイル処理: ここに、ファイル処理ロジック (保存、処理など) を実装します。
  6. Ok(): 成功した HTTP 応答を返します。

結論:

このアプローチは、ASP.NET Web API でファイルのアップロードを処理するための信頼できる方法を提供します。 マルチパート コンテンツと MultipartMemoryStreamProvider を使用すると、Web API サービス内で効率的かつ堅牢なファイル アップロード処理が保証されます。

以上がASP.NET MVC Web APIでファイルPOSTを受け入れるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。