我按照此处的说明进行程序化文件上传:
https://github.com/blueimp/jQuery-File-Upload/wiki/API
我通过调用
获取了我的文件列表var filesToUpload = $('#fileupload')[0].files
返回如下数组:
FileList {0: File, 1: File, length: 2, item: function}
0:File
lastModified: 1413746649000
lastModifiedDate: Sun Oct 19 2014 12:24:09 GMT-0700 (PDT)
name: "Screen Shot 2014-10-19 at 11.26.56 AM.jpg"
size: 582848type: "image/jpeg"
webkitRelativePath: ""
1: File
lastModified: 1413746649000
lastModifiedDate: Sun Oct 19 2014 12:24:09 GMT-0700 (PDT)
name: "Screen Shot 2014-10-19 at 11.27.08 AM.jpg"
size: 598589
type: "image/jpeg"
webkitRelativePath: ""
然后我打电话给:
var options = {url: 'https://s3.amazonaws.com/MYBUCKET',
type: 'POST',
formData: formDataOptions // my secret key, signature, etc. I know this is all correct
}
$('#fileupload').fileupload(); // initialization
$('#fileupload').fileupload( // set options
'option',
{
options
}
}
);
$('#fileupload').fileupload('add', {files: filesToUpload}); // add files
$('#fileupload').fileupload('send', {files: filesToUpload}); // send, no diff if I include filesToUpload again here
我回来了:
POST https://s3.amazonaws.com/MYBUCKET 400 (Bad Request)
现在,我知道我的选项和formParams是正确的,因为我在使用fileupload()的标准用法时使用了完全相同的配置,并且它工作正常。我很确定这个问题与我使用的filesToUpload数组有关。虽然它有对象,但它们是" File"对象,有时在fileupload()的调试器中(当以标准方式使用fileupload时)我发现它有" Blob"对象而不是。我是否需要以某种方式获得" Blob"对象,以便正确提交?或者还有什么呢?