我正在尝试使用Blueimp的jQuery-File-Upload插件,根据演示来看,它看起来非常有前途。
它的实现真的很容易:
var $uploadButton = $("#fileop-upload");// <input type="file" id="fileop-upload" [etc] />
$uploadButton.fileupload({
url : "//domain/path/to/receive-uploaded-files"
});
所选文件已按预期上传,而且无需刷新页面,但是使用这种最小配置时,用户将不会收到任何通知。插件的回调函数就可以派上用场了。根据文档,有两种定义回调函数的方法。例如,可以在原始配置对象中像这样添加“add”事件(每当选择要上传的文件时触发):
$uploadButton.fileupload({
add : addFileListener,
url : "//domain/path/to/receive-uploaded-files"
});
或者可以选择:
$uploadButton.bind("fileuploadadd", addFileListener);
然而我发现只有第一种方法起作用,第二种什么也没做。
更奇怪的是,无论如何绑定,似乎没有其他回调函数(特别是progress
和start
)被触发:
$uploadButton.fileupload({
add : addFileListener,
progress : progressListener,
start : startListener,
url : "//domain/path/to/receive-uploaded-files"
});
或者$uploadButton.fileupload({
add : addFileListener,
url : "//domain/path/to/receive-uploaded-files"
});
$uploadButton.bind("fileuploadprogress", progressListener");
$uploadButton.bind("fileuploadstart", startListener");
我已经定义了所需的监听函数,代码中没有出现任何错误或警告。为什么绑定方法.bind失败了?progress或start监听器为什么不会激活?请解释。