Javascript Dropzone.js提交多个ID

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

使用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_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