2017-08-31 22 views
1

asp.netコアWeb APIでファイルをアップロードしようとしています。そのため私は私のWeb APIを呼び出す1つのWebアプリケーションを持っています。ここで Request.Form.Filesがasp.netコアWeb APIで常に空になっている

は、ここで私がデバッグ中

using (var client = new HttpClient()) 
{ 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Sample"); 

    using (var content = new MultipartFormDataContent()) 
    { 
     var fileContent2 = new StreamContent(firmwareImage.InputStream); 
     fileContent2.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
     { 
      FileName = firmwareImage.FileName 
     }; 
     content.Add(fileContent2); 

     var result = await client.PostAsync(serviceUrl, content); 
     var response = await result.Content.ReadAsStringAsync(); 
    } 
} 

、ここではそのattchedコンテンツのスクリーンショットでファイルを添付していたWebアプリケーションのコードです。デバッグの価値の部分でぼやけている画像を申し訳ありません。

enter image description here

今のWeb APIの私は

var files = Request.Form.Files; 

することによって、この要求を受けたが、私は常に空のファイルを取得しています。カウントは常にゼロです。ここに同じリクエストのスクリーンショットがあります。 enter image description here

私は間違っているのですが、どうして私はWeb APIの添付ファイルを取得していませんか?

+2

multipart/form-dataとしてコンテンツタイプヘッダーを設定しようとしましたか? –

+0

はい、そのコードは私のために働くことができませんでした。私はmultipart/form-dataでapiリクエストコードを変更しました。ありがとう。 – kandarp

答えて

0

私は上記のコードから画像を投稿できませんでしたので、以下のコードを試してみましたが、うまくいきます。

HttpClient httpClient = new HttpClient(); 
MultipartFormDataContent form = new MultipartFormDataContent(); 

FileStream fs = System.IO.File.OpenRead("your file path"); 
var streamContent = new StreamContent(fs); 

var imageContent = new ByteArrayContent(streamContent.ReadAsByteArrayAsync().Result); 
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); 

form.Add(imageContent, "image", Path.GetFileName("your file name")); 
var response = httpClient.PostAsync("apiurl", form).Result; 
関連する問題