Dropzone.js 提交多个 ID
Dropzone.js submit for multi ids
使用 Dropzone 使用不同的 ID 将多个文件提交到多个表单
但它只提交最后一个 id
这是我们用来提交的一个onclick提交函数
我选择了所有行 ID
2. 将其收集到具有不同 url 的 ids 数组中 (forms/upload_files/'id')
这是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;
}
}
}
}
}
请注意,您必须将状态更改回已排队,因为 .processQueue()
不会上传已上传或正在处理的文件。
使用 Dropzone 使用不同的 ID 将多个文件提交到多个表单 但它只提交最后一个 id
这是我们用来提交的一个onclick提交函数
我选择了所有行 ID 2. 将其收集到具有不同 url 的 ids 数组中 (forms/upload_files/'id')
这是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;
}
}
}
}
}
请注意,您必须将状态更改回已排队,因为 .processQueue()
不会上传已上传或正在处理的文件。