Javascript Dropzone.js提交多个ID
使用Dropzone使用不同ID将多个文件提交到多个表单 但这只是最后一个id的提交 这是我们用来提交的onclick提交函数 我选择了所有的行id 2.用不同的URL(forms/upload\u files/'id')在ids数组中收集它 这是Dropzone函数Javascript Dropzone.js提交多个ID,javascript,dropzone.js,dropzone,Javascript,Dropzone.js,Dropzone,使用Dropzone使用不同ID将多个文件提交到多个表单 但这只是最后一个id的提交 这是我们用来提交的onclick提交函数 我选择了所有的行id 2.用不同的URL(forms/upload\u files/'id')在ids数组中收集它 这是Dropzone函数 if($('#dropzoneDragArea').length > 0){ submitDropzone = new Dropzone("#id-form", $.extend({},_dropzone
if($('#dropzoneDragArea').length > 0){
submitDropzone = new Dropzone("#id-form", $.extend({},_dropzone_defaults(),{
autoProcessQueue: false,
parallelUploads: 100,
uploadMultiple: true,
clickable: '#dropzoneDragArea',
previewsContainer: '.dropzone-previews',
addRemoveLinks: true,
maxFiles: 2,
}));
}
这是onclick函数
function submit(event) {
var ids = [];
var rows = $('.table-rows').find('tbody tr');
$.each(rows, function() {
var checkbox = $($(this).find('td').eq(0)).find('input');
if (checkbox.prop('checked') == true) {
submitDropzone.options.url = admin_url + 'forms/upload_file/' + checkbox.val();
ids.push(submitDropzone.options.url);
}
});
submitDropzone.processQueue();
}
如果要使用同一dropzone将同一个或多个文件发送到多个url,请提供任何建议,一个选项是处理队列,然后对文件重新排队,并更新选项中的url,然后针对要发送文件的每个不同url再次处理队列 假设您已经使用URL填充了
ids
数组,那么您的提交函数可能如下所示:
function submit(event) {
var ids = [];
// populate urls array
// submit the files to each url
for (let i = 0; i < ids.length; i++) {
submitDropzone.options.url = myUrls[i];
submitDropzone.processQueue();
// if there is still urls requeue the files
if (i !== myUrls.length - 1) {
for (let file of submitDropzone.files) {
if (file.status === Dropzone.SUCCESS || file.status === Dropzone.PROCESSING) {
file.status = Dropzone.QUEUED;
}
}
}
}
}
函数提交(事件){
var-id=[];
//填充URL数组
//将文件提交到每个url
for(设i=0;i
请注意,您必须将状态更改回队列,因为
.processQueue()
不会上载已上载或正在处理的文件。什么是submitDropzone.options.url
?您是否已将autoProcessQueue
设置为false?这是包含文件的Dropzone的主要功能,它的工作方式没有问题,只是。processQueue()只需上载最后一个表单即可only@AndrewLohr是autoProcessQueue设置为False在每次迭代中覆盖选项。url
,因此,当您处理队列选项时,url
仅包含数组中的最后一个url。现在,如果我理解正确,您要做的是使用一个dropzone将同一个或多个文件上载到多个URL?@wallek876是的,这是正确的,当我放置submitDropzone.processQueue()时;在同一个迭代中,它只提交第一个id