gpt4 book ai didi

javascript - 在 Dropzonejs 中调用 .processQueue() 时出错

转载 作者:行者123 更新时间:2023-11-30 00:11:14 26 4
gpt4 key购买 nike

我在我的项目中使用 dropzoneJS。在我添加的 addedfile 事件中:

    var csrf = $('input[name=_token]').val();
$.ajax({
async: true,
method: 'POST',
dataType: 'json',
url: '../public/userfiles',
data: {"_token": csrf },
complete: function(data) {
var maxsize = 314572800;
var freesize = maxsize - data.responseJSON;
if(file.size > freesize){
alert('Нямата достатъчно свободно пространсво.');
}
else {
alert('Успешно качен файл');
return Dropzone.prototype.processQueue();
}
}
});

这实际上是获取所有上传文件的总大小,并检查当前上传的文件是否大于“可​​用空间”。为了进行检查,我将 autoProcessQueue 选项设置为 false。检查大小后,我调用了应该继续队列的函数。但是最后一行 return Dropzone.prototype.processQueue(); 在控制台中给我一个错误

TypeError: this.options 未定义
parallelUploads = this.options.parallelUploads;
可能是什么情况?编辑: enter image description here

最佳答案

processQueue 只有在 Dropzone 实例上调用时才有效。否则,该函数无法知道要处理的队列。扩展 example from the docs :

var myDropzone = new Dropzone("div#myId", { url: "/file/post"});
myDropzone.on("addedfile", function(file) {
// Your code here
this.processQueue();
});

但是,由于您是从另一个函数(您的 complete 函数)内部执行此操作,因此您将必须确保您拥有正确的上下文。

myDropzone.on('addedfile', function(file) {
$.ajax({
// options go here
complete: function(data) {
var maxsize = 314572800;
var freesize = maxsize - data.responseJSON;
if(file.size > freesize){
alert('Нямата достатъчно свободно пространсво.');
}
else {
alert('Успешно качен файл');
return myDropzone.processQueue();
}
}
});
});

编辑

如果您要自动初始化 Dropzone,那么您可以使用 init option. 配置它

Dropzone.options.dropzoneFileUpload = {
init: function() {
// `this` refers to the current dropzone
var self = this; // keep a reference
this.on('addedfile', function(file) {
...
$.ajax({
...
complete: function(data) {
var maxsize = 314572800;
var freesize = maxsize - data.responseJSON;
if(file.size > freesize){
alert('Нямата достатъчно свободно пространсво.');
}
else {
alert('Успешно качен файл');
return self.processQueue();
}
}
});
});
}
};

关于javascript - 在 Dropzonejs 中调用 .processQueue() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36410848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com