我正在使用如下所示的UploadFilesAsync方法上传文件。
var wc = new WebClient();
Uri myUri = new Uri(uriString);
wc.UploadFileAsync(myUri, "POST", filePath);
wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
调用了我的UploadFileCompleted事件处理程序,但由于某些原因,从未调用过UploadProgressChanged事件处理程序。
你知道为什么吗?
发布于 2012-12-04 05:54:49
更改:
wc.UploadFileAsync(myUri, "POST", filePath);
wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
适用于:
wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
wc.UploadFileAsync(myUri, "POST", filePath);
要在 UploadFileAsync调用后绑定事件处理程序,必须先绑定事件处理程序。
MSDN示例:
// Sample call: UploadFileInBackground2("http://www.contoso.com/fileUpload.aspx", "data.txt")
public static void UploadFileInBackground2 (string address, string fileName)
{
WebClient client = new WebClient ();
Uri uri = new Uri(address);
client.UploadFileCompleted += new UploadFileCompletedEventHandler (UploadFileCallback2);
// Specify a progress notification handler.
client.UploadProgressChanged += new UploadProgressChangedEventHandler(UploadProgressCallback);
client.UploadFileAsync (uri, "POST", fileName);
Console.WriteLine ("File upload started.");
}
发布于 2012-12-04 06:02:38
您应该首先添加eventHandlers,然后调用将触发它们的方法。
wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
wc.UploadFileAsync(myUri, "POST", filePath);
https://stackoverflow.com/questions/13692301
复制相似问题