这个问题已经在这里和这里得到了回答。但是在 1.5.6 版中,将 init() 放在 FilesAdded(...) 之前会使其完全没有响应。同样,自动启动上传也根本不会启动。
var csvUploader = new function() {
var self = this;
self.init = function() {
var uploader = new plupload.Uploader(
{
runtimes: 'html4',
url: 'http://localhost:5073/Document/Upload',
browse_button: 'uploadCsvButton',
max_file_size: '100mb',
chunk_size: '1mb',
unique_names: true,
filters: [{ title: "CSV files", extensions: "csv" }]
});
/* postion 1: uploader.init(); /**/
uploader.bind('FilesAdded', function(up, files) {
setTimeout(function () { up.start(); }, 500);
});
uploader.bind('FileUploaded', function (up, file) {
// do some stuff here...
});
/*position 2: */ uploader.init(); /**/
}; // self.init
}; // NS:csvUploader
该模块的初始化:
csvUploader.init();
那么有经验的同事这里有什么问题呢?模块化模式还是其他?由于 init() 位于位置 2,因此方法 FilesAdded 内容被调用,但 up.start(); 永远不要将文件上传到服务器。请问有什么想法吗?