我正在使用 Dropzonejs
在表单中添加图像上传功能,由于表单中还有其他各种字段,因此我将 autoProcessQueue
设置为 false
,并在单击提交按钮时处理表单,如下所示。
Dropzone.options.portfolioForm = {
url: "/user/portfolio/save",
previewsContainer: ".dropzone-previews",
uploadMultiple: true,
parallelUploads: 8,
autoProcessQueue: false,
autoDiscover: false,
addRemoveLinks: true,
maxFiles: 8,
init: function() {
var myDropzone = this;
this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
});
}
}
这个方法很好,可以在表单提交时处理所有发送的图像。但是,我还想能够在用户再次编辑表单时查看用户已经上传的图像。所以我查阅了来自Dropzone Wiki的以下帖子。
https://github.com/enyo/dropzone/wiki/FAQ#how-to-show-files-already-stored-on-server该帖子使用现有图像填充 dropzone-preview
区域,但这次不会随表单提交发送现有图像。我想这是因为这些图像没有添加到queue
中,但如果是这样,那么如何在服务器端进行更新呢?万一用户删除了现有的图像,怎么办?
此外,哪种方法更好:将已添加的图像再次添加到queue
中,还是只发送已删除文件的信息?
accepted: true
,你还需要执行myDropzone.emit("complete", mockFile);
来确保文件被成功上传,否则它将会显示上传进度条,这可能会让一些人感到困惑! - Anupam