我正在使用jquery file uploader。我需要文件以直接从浏览器上传到Amazon S3。单次上传,插件设置最少,可以正常工作。我需要三个大小相同的文件,需要直接上传到S3。因此,我认为processQueue
可以用于它,但是直到现在才使它起作用。
我正在requireJS环境中工作文件上传器。下面是我尝试过的代码。
$('.fileupload').fileupload({
url: '//testbucket.s3.amazonaws.com',
type: 'POST',
autoUpload: true,
dataType: 'xml', // S3's XML response
add: function (e, d) { console.log('add') };
success: function (e, d) {},
processQueue : [
{
action : 'loadImage',
fileTypes : /^image\/(gif|jpeg|png)$/,
maxFileSize : 5120000
}, {
action : 'resizeImage',
maxHeight : 400,
crop : false
}, {
action : 'saveImage'
}, {
action : "setImage"
}
],
processstart: function (e) {
console.log('Processing started...');
},
process: function (e, data) {
console.log('Processing ' + data.files[data.index].name + '...');
},
processdone: function (e, data) {
console.log('Processing ' + data.files[data.index].name + ' done.');
}
});
这些是我包含在我的requireJS模块中的模块。
define(
[
'jquery', // jQuery Library
'jquery.ui.widget', // https://github.com/blueimp/jQuery-File-Upload
'load-image', // https://github.com/blueimp/JavaScript-Load-Image
'canvas-to-blob', // https://github.com/blueimp/JavaScript-Canvas-to-Blob
'jquery.iframe-transport', // https://github.com/blueimp/jQuery-File-Upload
'jquery.fileupload', // https://github.com/blueimp/jQuery-File-Upload
'jquery.fileupload-process', //https://github.com/blueimp/jQuery-File-Upload
'jquery.fileupload-image' // https://github.com/blueimp/jQuery-File-Upload
],
如何解决这个问题呢?
最佳答案
data参数允许覆盖插件选项以及定义
Ajax设置。
https://github.com/blueimp/jQuery-File-Upload/wiki/Options
您将autoupload
设置为false,
在add
回调中,您遍历图像设置数组
在每次迭代中:
设置图像调整大小插件选项,
更改文件名
提交d