簡體   English   中英

使用Microsoft.Net.Http將文件發送到服務

[英]Send file to service using Microsoft.Net.Http

我有一個方法:

    private bool UploadFile(Stream fileStream, string fileName)
    {
            HttpContent fileStreamContent = new StreamContent(fileStream);
            using (var client = new HttpClient())
            {
                using (var formData = new MultipartFormDataContent())
                {
                    formData.Add(fileStreamContent, fileName, fileName);

                    var response = client.PostAsync("url", formData).Result;

                    return response.StatusCode == HttpStatusCode.OK;
                }
            }
        }
    }

那就是將文件發送到WCF服務,但是查看該帖子的Wireshark日志,並沒有附加文件流,只是附加了文件名。 我還需要做其他事情嗎?

使用ByteArrayContent代替流內容。

 var fileContent = new ByteArrayContent(File.ReadAllBytes(fileName));

然后指定您的內容處置標題:

fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
    FileName = fileName
};

formData.Add(fileContent);

原來fileStream沒有進入該方法。 使用context.Request.Files[0].InputStream似乎是罪魁禍首。 使用.SaveAs,然后將其讀取為byteArray並將其附加到MultiPartFormDataContent即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM