我正在尝试在我的项目中使用WebClient.UploadFile将文件发布到服务器。 WebClient.UploadFile接受文件名uri作为参数,但我想传递文件流而不是文件名uri。这可能与WebClient有关吗?
答案 0 :(得分:5)
以下是一些示例,说明如何使用WebClient class将流写入指定的资源:
using (var client = new WebClient())
{
var fileContent = System.IO.File.ReadAllBytes(fileName);
using (var postStream = client.OpenWrite(endpointUrl))
{
postStream.Write(fileContent, 0, fileContent.Length);
}
}
using (var client = new WebClient())
{
client.OpenWriteCompleted += (sender, e) =>
{
var fileContent = System.IO.File.ReadAllBytes(fileName);
using (var postStream = e.Result)
{
postStream.Write(fileContent, 0, fileContent.Length);
}
};
client.OpenWriteAsync(new Uri(endpointUrl));
}
答案 1 :(得分:2)
您应该能够使用方法WebClient.OpenWrite
和OpenWriteAsync
将流发送回您的服务器。
如果您使用后者,则订阅OpenWriteCompleted
并使用e.Result
作为CopyTo
的流。