我正在使用 FineUploaderBasic 将一些上传功能构建到应用程序中。除了我尝试取消文件(在 onupload 回调期间满足条件时)之外,一切都很好。我收到此错误:
TypeError: fileState[id] is undefined ...var fileOrBlob = fileState[id].file || 文件状态[id].blobData.blob,
onupload 回调参数 id 为 0,名称为文件的正确名称。在这一点上没有很多 fileState 信息是有道理的,因为 onupload 过程在上传之前运行 - 那么为什么 reset 或 cancel* 仍然会走这么远......
我应该如何取消一个(或多个文件)或如何随意重置上传器。
注意我还应该补充一点,该错误不是致命的——事实上,该功能甚至看起来工作正常——但日志中的错误并不是很好。
代码摘录:
function UploadButton(element, opts)
{
this.fineUploaderInst = null;
this.opts = opts;
this.element = element;
var container = this;
var originalBorder = null;
var uploader = null;
this.element.addClass("qq-upload-button");
this.applyFineUploader = function() {
this.uploader = new qq.FineUploaderBasic({
button: this.element[0],
request: {
endpoint: "/files/fine-uploader"
},
validation: {
allowedExtensions : this.opts.extensions
},
multiple: false,
callbacks: {
onSubmit: function() {
container.element.find("span.ui-icon")
.removeClass("ui-icon-arrowthick-1-n")
.addClass("file-uploading");
},
onUpload: (opts.onUpload)
? function(id, name) {
if(! container.opts.onUpload(id, name)) {
container.uploader.reset();
}
container.element.find("span.ui-icon")
.addClass("ui-icon-arrowthick-1-n")
.removeClass("file-uploading");
}
: function(id, name) {},
//... more stuff ...
很抱歉上面摘录的不整洁。变量元素以 jQuery 选择器结果的形式出现,而opts只是一个简单的选项字典。我希望它有所帮助。
我正在使用 FineUploader 3.4.1。
谢谢人们。