をチェックするためにあなたがあなたのContent-Typeがマルチパートであることを確認する必要があり、あなたに
public async Task<HttpResponseMessage> Image(int id)
{
string filepath = @"e:\testing\file";
if (Request.Content.IsMimeMultipartContent())
{
var streamProvider = new MultipartFormDataStreamProvider(filepath);
await Request.Content.ReadAsMultipartAsync(streamProvider);
foreach (MultipartFileData fileData in streamProvider.FileData)
{
if (string.IsNullOrEmpty(fileData.Headers.ContentDisposition.FileName))
{
return Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted");
}
string fileName = fileData.Headers.ContentDisposition.FileName;
if (fileName.StartsWith("\"") && fileName.EndsWith("\""))
{
fileName = fileName.Trim('"');
}
if (fileName.Contains(@"/") || fileName.Contains(@"\"))
{
fileName = Path.GetFileName(fileName);
}
File.Move(fileData.LocalFileName, Path.Combine(filepath, fileName));
}
return Request.CreateResponse(HttpStatusCode.OK);
}
を助けることを願って/ form-dataと、適切な境界線の両方を指定します(データ部分のアプリケーション/オクテットストリーム)。質問にあなたの要求のヘッダー/本文を追加することも役に立ちます。
この1つは私の作品:
Header:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrhNuQUPgZKD8RxKq
Payload:
------WebKitFormBoundaryrhNuQUPgZKD8RxKq
Content-Disposition: form-data; name="filename"; filename="filename.txt"
Content-Type: application/octet-stream
------WebKitFormBoundaryrhNuQUPgZKD8RxKq--
私は関連/マルチパートにContent-typeを設定し、それはまだ文句を言わないif文を渡しますか? –
コンテンツタイプは "Content-Type:application/x-www-form-urlencoded"でなければなりません "[添付画像参照](http://i.stack.imgur.com/Z3jfv.png)を参照してください" –