C# 使用Microsoft.Net.Http将文件发送到服务

C# 使用Microsoft.Net.Http将文件发送到服务,c#,file-upload,upload,multipartform-data,httpcontent,C#,File Upload,Upload,Multipartform Data,Httpcontent,我有一个方法: private bool UploadFile(Stream fileStream, string fileName) { HttpContent fileStreamContent = new StreamContent(fileStream); using (var client = new HttpClient()) { using (var formDa

我有一个方法:

    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);

结果是文件流没有到达该方法。使用
context.Request.Files[0]。InputStream
似乎是罪魁祸首。使用.SaveAs,然后将其作为byteArray读入,并将其附加到MultiPartFormDataContent上。我确实这样做了,但因为我最终将文件保存到磁盘,然后将其作为byteArray读入。您只能将当前保存的文件附加到磁盘上吗?我试图避免这样做,这就是为什么我要附加一个流。因此,在结果中,方法参数中不需要流文件流,对吗?@rob-g我能找到一个完整的建议暗示的工作示例吗?