我需要处理通过(带或不带分块)上传到 Amazon S3 的每个文件的二进制数据。你知道 Fineuploader 中是否有任何函数/信号可以用来处理每个二进制块/文件吗?:
例如:
preupload(data_chunk)
process(data_chunk);
return data_chunk
这对我的项目非常有用。
干杯, 皮奥特尔
最简单的方法是在
File
事件处理程序中获取 Blob
/submit
,从处理程序返回 false(告诉 Fine Uploader 忽略该文件),处理它,然后发送处理后的文件通过 addBlobs
方法将文件返回到 Fine Upload。您需要确保您的提交事件处理程序知道要处理/忽略哪些文件以及“不处理”哪些文件。执行此操作的一种方法是将属性添加到提交事件处理程序查找的已处理 Blob
。
由于 Stack Overflow 的代码编辑器很糟糕,我创建了 a gist 来演示这一点。
function process(file) {
var processedVersion = /*do stuff and return a processed version */
processedVersion.processedByMyApp = true;
uploader.addBlobs(processedVersion);
}
var uploader = new qq.FineUploader({
request: {
endpoint: "/uploads"
},
callbacks: {
onSubmit: function(id) {
var file = this.getFile(id);
if (!file.processedByMyApp) {
process(file);
return false;
}
}
}
});