【发布时间】:2019-04-02 09:47:06
【问题描述】:
我正在尝试在会话存储中临时保留一些表单数据,但找不到正确存储排队(未上传)dropzone.js 文件的方法。
Accoring to documentation,我已经尝试过以下方法:
存储:
dropzone.getQueuedFiles().forEach(function(file, index) {
sessionStorage.setItem("picture_" + index, file.dataURL);
sessionStorage.setItem("picture_" + index + "_name", file.name);
sessionStorage.setItem("picture_" + index + "_type", file.type);
})
DOM 渲染后检索:
let restoredFiles = 0;
for(let i =0; i < dropzone.options.maxFiles; i++) {
restoredFiles++;
if(sessionStorage.getItem('picture_' + i) !== null){
let data_url = sessionStorage.getItem('picture_' + i);
let name = sessionStorage.getItem('picture_' + i + '_name');
let type = sessionStorage.getItem('picture_' + i + '_type');
let mockFile = {dataURL: data_url, name: name, type: type};
dropzone.emit("addedfile", mockFile);
dropzone.emit("thumbnail", mockFile);
dropzone.createThumbnailFromUrl(mockFile);
dropzone.emit("complete", mockFile);
}
}
dropzone.options.maxFiles = dropzone.options.maxFiles - restoredFiles;
这适用于将文件添加到 Dropzone,但无法显示缩略图。两个缩略图命令中的任何一个都不会生成缩略图,并且没有实际的 URL,我不能真正使用 dropzone.createThumbnailFromUrl。
有没有更好的办法?
【问题讨论】:
标签: javascript angular typescript dropzone.js