我有一个方法:
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日志,不会追加fileStream,只是文件名。我还需要做点什么吗?
答案 0 :(得分:2)
使用ByteArrayContent
代替流内容。
var fileContent = new ByteArrayContent(File.ReadAllBytes(fileName));
然后指定您的内容处置标题:
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fileName
};
formData.Add(fileContent);
答案 1 :(得分:0)
结果是fileStream没有进入该方法。使用context.Request.Files[0].InputStream
似乎是罪魁祸首。使用.SaveAs然后将其作为byteArray读取并将其附加到MultiPartFormDataContent工作。