有没有办法从dropzone中删除的文件生成zip,然后将该zip文件发送到服务器?
我在JSZip
dropzone事件中使用sending
从文件生成zip:
this.on("sending", function(file, xhr, formData) {
var zip = new JSZip();
zip.file("Hello.csv", file);
zip.generateAsync({ type: "blob" }).then(function(content) {
// see FileSaver.js
saveAs(content, "example.zip");
});
});
如何让dropzone发送此文件而不是添加一个用户?
答案 0 :(得分:1)
这对我在dropzone 5.7.0上有效,但是我改用了while
事件:
"addedFile"
我添加了压缩功能(JSZip的默认值为this.on("addedfile", function (file) {
if (file.done) {
return;
}
const dz = this;
dz.removeFile(file);
let z = new JSZip();
z.file(file.name, file);
z.generateAsync({
type: "blob",
compression: "DEFLATE",
compressionOptions: { level: 9}
}).then(function(content) {
let f = new File([content], file.name);
f.done = true;
dz.addFile(f);
});
});
),并保留了STORE
,以使拉链对用户透明(但是他们仍然会看到较小的尺寸)。
p.s。我也不喜欢添加file.name
字段...欢迎更好的解决方案。