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>
コードの説明:
IsMimeMultipartContent()
: リクエストのマルチパート コンテンツ タイプを検証します。MultipartMemoryStreamProvider
: メモリ内のマルチパート データを管理します。ReadAsMultipartAsync()
: マルチパート データを個々のコンポーネントに解析します。Ok()
: 成功した HTTP 応答を返します。結論:
このアプローチは、ASP.NET Web API でファイルのアップロードを処理するための信頼できる方法を提供します。 マルチパート コンテンツと MultipartMemoryStreamProvider
を使用すると、Web API サービス内で効率的かつ堅牢なファイル アップロード処理が保証されます。
以上がASP.NET MVC Web APIでファイルPOSTを受け入れるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。