WebClient.UploadFile传递上传文件为流
问题描述:
我想在我的项目中使用WebClient.UploadFile将文件发布到服务器。 WebClient.UploadFile接受文件名uri作为参数,但我想通过文件流而不是文件名uri。 WebClient可以吗?WebClient.UploadFile传递上传文件为流
答
你应该能够使用方法WebClient.OpenWrite
和OpenWriteAsync
发送一个流回你的服务器。
如果您使用较晚的版本,则请订阅OpenWriteCompleted
并使用e.Result
作为到CopyTo
的数据流。
答
下面是一些例子,说明如何使用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));
}
@Thomas你是怎么结束做什么? – user990635 2013-08-15 09:53:34