【发布时间】:2015-05-19 04:37:04
【问题描述】:
在自动加载关闭的情况下,我在使用 jQuery FileUpload 时遇到了很多问题。我需要在一个请求中提交所有内容——而不是多个。我已经为此奋斗了 3 天,并进行了很多研究。我只是觉得我错过了一件事情。这是我得到的:
jQuery:
$(function(){
var ul = $('#upload ul');
// Initialize the jQuery File Upload plugin
$('#entry_form_doc').fileupload({
type: 'POST',
url: 'leadresources/submitDoc',
limitMultiFileUploads: 5,
autoUpload: false,
dropZone: $('#drop'),
add: function (e, data) {
//fired by a click of a button.
$("#submit_doc").unbind('click').on('click', function(){
data.formData = {files: data.originalFiles};
data.submit();
});
},
fail:function(e, data){
// Something has gone wrong!
data.context.addClass('error');
}
});
});
这是我 print_r() 到日志中时 Laravel 得到的:
[2015-03-16 14:27:27] production.INFO: Array
(
[lb_id] =>
[lb_doc_title] => asdf
[lb_docs_summary] =>
[file] => Array
(
[0] => Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => photo 2.JPG
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 498589
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => C:\xampp\tmp\php31F9.tmp
[fileName:SplFileInfo:private] => php31F9.tmp
)
)
)
[] []
)
[] []
现在,它只返回第一个对象,没有别的。我想这是有道理的,因为 data.submit 是在第一张图片上触发的,然后解除绑定。
很长一段时间以来,我收到了多次提交,但我只希望它与 fileListArray 一起提交一次——而不是单个文件。我试图创建一个文件列表数组,但 Laravel 记录了一个 [object FileList] 就是这样。
那么有没有其他人能够在没有自动加载的情况下在一个请求中触发它——而不是多个请求。我关注了documentation,它谈到了 singleFileUploads 但仍然......没有用。
只是好奇是否有其他人对此有智慧。这是一个很棒的插件——只是真的很难弄清楚。
编辑:
我还应该说,我想要关闭自动加载的原因是我需要先提交 3 个表单字段来返回一个 ID,这样我才能将 ID 附加到这些文档中。
【问题讨论】:
标签: jquery laravel file-upload