0

以下のコードを使用して、いくつかの追加パラメーターを使用して画像をアップロードしています。

[HttpPost]
    public HttpResponseMessage Upload(Data data)
    {
        var count = HttpContext.Current.Request.Files.Count;
        return null;
    }

postmanchrome拡張機能を使ってこの方法を確認してみました。これらの値を渡しました

ヘッダーの下

enctype: multipart/form-data
Content-Type: application/json

form-data の下に 1 つの画像ファイルを追加

生の下

{
 "Id": "1",
  "ModifiedBy" : "1"
}

しかし、私が0を得ている問題count

4

1 に答える 1

1

コードを機能させるには、Content-Type を application/json ではなく multipart/form-data にする必要があります。典型的なコンテンツ タイプは次のようになります。

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvmxBBVAoH3KRsa9L

実際の投稿データには、境界で区切られた「データ」のブロックが含まれます。これらのブロックにはコンテンツ タイプを含めることができますが、必須ではありません。ファイルのアップロードを行っている場合、コンテンツ タイプは重要ではありません。ファイル名がタイプを決定します。

つまり、WebAPI では、ASP.NET HttpContext オブジェクトを使用するのではなく、低レベルの Web API セマンティクスを使用する必要があります。あなたがしていることは、ASP.NET スタック内で実行している限り機能しますが、セルフホストする場合、または将来 OWin/Katana などの別のスタック上で実行する場合、このコードは機能しなくなります。

Web API 固有のコードを使用してファイルのアップロードを処理するには、Filip W. のこのブログ投稿を確認してください。

http://www.strathweb.com/2012/04/html5-drag-and-drop-asynchronous-multi-file-upload-with-asp-net-webapi/

于 2013-04-08T13:31:45.397 に答える