gpt4 book ai didi

dropzone.js - Dropzonejs 删除文件而不调用删除回调

转载 作者:行者123 更新时间:2023-12-04 15:39:28 25 4
gpt4 key购买 nike

我正在使用 Dropzonejs 上传文件以在我的模块中使用。它的工作方式是编辑项目,将文件拖到放置区,放置区隐藏,然后您会看到图像的预览。该预览是自制的,并且有一个删除按钮来删除图像并取消数据库中的列。

要删除文件,dropzone 有一个 .on调用removedfile .这被放在一个看起来像这样的全局函数中(仅包含问题的重要数据):

function createDropzone(removeCallback, id) {
$('#' + id).dropzone({
url: 'URL TO UPLOAD FILE',
init: function() {
var myDropzone = this;

this.on('removedfile', function(file) {
$.post('URL TO DELETE FILE', {file: file}, function(response) {
// handle delete
}
},
}
}

现在在这个特定模块中,当有人上传图像时,它必须隐藏 dropzone 元素并显示自定义预览元素。但是,如果有人希望删除图像,则必须从 dropzone 中删除文件,并在自定义预览单击删除图标时运行单击事件。

但是问题是,如果图像存在,它不会将图像添加到 dropzone,您将立即看到自定义预览。因此,我不能简单地调用 dropzone removeallfiles函数,因为 dropzone 并不总是包含图像。但是当我调用 removeallfiles函数 AND 事件被调用并且图像在 dropzone 中,它将尝试删除文件两次。

有没有什么方法可以在不获取 removedfiles 的情况下从 dropzone 中删除所有文件?叫?

(对不起,如果我的解释不好,现在还很早,我可以解释得更好)

最佳答案

我正在使用 Dropzone 的 addedfile事件以删除任何非最终的先前上传尝试,如下所示:

init: function() {
var myDropzone = this;
this.on('addedfile', function(file) {
if (this.files.length > 1) {
this.removeFile(this.files[0]);
}
});
}

然后在提交时,我正在处理文件:
$('input[type="submit"]').on("click", function (e) {
// Make sure that the form isn't actually being sent.
if (myDropzone.getQueuedFiles().length > 0) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
}
});

我希望它有帮助:)

关于dropzone.js - Dropzonejs 删除文件而不调用删除回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995808/

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