【问题标题】:YUI Uploader - How to tell when all files have been uploaded?YUI Uploader - 如何判断所有文件何时上传?
【发布时间】:2010-08-30 10:31:46
【问题描述】:

我正在使用YUI 2 Uploader 上传一些文件。我的用户将上传多个文件,所以我想使用 YUI Uploader 的“文件队列”。这一切都成功了。我在文件上传时禁用了上传器,因此人们一旦开始上传文件就无法将新文件添加到队列中。

当所有文件都上传完毕后,我想做一些事情(在 JavaScript 中)。 YUI Uploader 会在某些文件上传时发出信号,但不会在队列中的所有文件都已上传时发出信号。有什么方法可以检测所有文件何时上传?

【问题讨论】:

    标签: javascript yui yui-uploader


    【解决方案1】:

    保留一个文件对象(或数组)并在 uploadComplete 处理程序中删除刚刚完成的文件。如果没有剩余,请调用您的上传完成函数。

    这里的示例实现,http://tivac.com/upload/upload.js 它有一些错误,但解决了这个特殊问题。

    【讨论】:

      【解决方案2】:

      为 uploadcomplete 事件创建一个事件处理程序。 查看 yui 上传器文档: http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html

      http://developer.yahoo.com/yui/examples/uploader/uploader-advanced-queue.html

      function onUploadComplete(event) {
              rowNum = fileIdHash[event["id"]];
              prog = Math.round(100*(event["bytesLoaded"]/event["bytesTotal"]));
              progbar = "<div style='height:5px;width:100px;background-color:#CCC;'><div style='height:5px;background-color:#F00;width:100px;'></div></div>";
              singleSelectDataTable.updateRow(rowNum, {name: dataArr[rowNum]["name"], size: dataArr[rowNum]["size"], progress: progbar});
          }
      

      【讨论】:

      • 上传文件时每个文件调用一次。如果队列中有 3 个项目,则在第一个项目完成时调用此方法。我想要只有在所有 3 个都被上传后才会调用的东西。
      猜你喜欢
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 2022-07-14
      • 2015-04-17
      相关资源
      最近更新 更多