【发布时间】:2010-01-26 15:01:36
【问题描述】:
我正在使用 Webclient 通过异步调用将数据上传到服务器,
WebClient webClient = new WebClient();
webClient.UploadDataAsync(uri , "PUT", buffer, userToken);
我已将 DatauploadProgress 和 DatauploadCompleted 事件附加到适当的回调函数
// Upload Date Progress
webClient.UploadProgressChanged += new
UploadProgressChangedEventHandler(UploadProgressCallback);
// Upload Date Progress
void UploadProgressCallback(object sender, UploadProgressChangedEventArgs e)
{
// Magic goes here
logger.writeToLog("Percentage =" + e.ProgressPercentage);
}
e.ProgressPercentage 总是返回 50 .. 无论上传文件的大小是多少(尝试了 10kb 到 60mb 之间的不同大小)。
函数本身只被调用两次(也非常快),百分比显示为 50! ..这对于大文件来说特别不合逻辑...
e.BytesSent 也无济于事..它总是以字节为单位显示文件大小:S(例如:如果文件大小为 63,000,我会得到e.BytesSent = 63,000和e.ProgressPercentage= 50
谁能给我指出问题?
【问题讨论】:
-
UploadDataAsync 是否真的支持 PUT 方法?
-
我在这个页面上有一个表单 mouse-backtracker.herokuapp.com/GESFileUpload.html 我可以提交一个调用表单操作作为 url file.ac/xySSFOicMMk 用于文件上传吗?
标签: c# .net webclient progress uploaddataasync