【问题标题】:UploadProgressChanged Event Not Being Called未调用 UploadProgressChanged 事件
【发布时间】:2012-12-04 06:02:37
【问题描述】:

我正在使用如下所示的 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 事件处理程序从未被调用。

有什么想法吗?

【问题讨论】:

    标签: c# file-upload uri


    【解决方案1】:

    变化:

    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.");
    }
    

    【讨论】:

    • 当 UploadFileCompletedEventHandler 触发时,它是上传到目标目标的文件吗?
    【解决方案2】:

    您应该首先添加 eventHandlers,然后调用将触发它们的方法。

    wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
    wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
    wc.UploadFileAsync(myUri, "POST", filePath);
    

    【讨论】:

    • 试过了,进度改变事件仍然没有被调用。
    • 您确定上传有效吗?上传后是否在服务器上获取文件?
    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2014-03-06
    • 2015-11-14
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多