【发布时间】:2021-01-16 11:27:32
【问题描述】:
手动加载文件时是否可以手动处理dropzone表单(或队列)?
我们有驾照的概念。用户上传照片并输入其他信息,例如许可证号、到期日期等。用户单击保存按钮,我调用 processQueue() 提交整个表单。这一切都很好。
接下来,我们使用编辑按钮以非表单方式显示此许可证。当他们单击“编辑”按钮时,我再次显示表单并使用先前输入的数据填充字段,包括手动添加先前提交的许可证照片。文档中基本上是这样的:
mounted: () {
var file = { size: 300, name: "Icon", type: "image/png" };
var url = "https://example.com/img/logo_sm.png";
this.$refs.myVueDropzone.manuallyAddFile(file, url);
}
这似乎按预期工作。我看到带有先前上传文件的缩略图的 dropzone。输入字段都填充了以前输入的数据。
当我尝试再次处理此表单时出现问题:
onSubmit() {
this.$refs.myVueDropzone.processQueue()
}
如果他们只更改许可证号等输入字段而不上传新文件,则 onSubmit() 或 processQueue() 不起作用。它仅在我删除并重新添加文件或添加第二个文件时才有效。就好像它无法识别已添加的文件一样。是否手动添加文件仅用于显示而不是实际添加文件?
手动添加文件时如何提交此表单?
【问题讨论】:
-
我不确定这是否是您的问题,因为您引用了两个不同的组件。在挂载
this.$refs.myVueDropzone上提交this.$refs.myDropzone -
对不起,我更正了,这是一个错字。
-
选项里有
autoProcessQueue: false -
是的,autoProcessQueue 设置为 false。然后我将文件设置为:this.$refs.myVueDropzone.manuallyAddFile({size: photo.size, name: photo.name, type: photo.type}, photo.url);
-
更多信息:this.$refs.myVueDropzone.dropzone.files.length 显示 1,但 getQueuedFiles() 不返回任何内容。
标签: vue.js dropzone vue2-dropzone