猿问

在会话存储中保留dropzone文件

我正在尝试将某些表单数据临时保留在会话存储中,并且找不到正确存储排队(未上载)的dropzone.js文件的方法。


根据文档,我已经尝试了以下方法:


储存:


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。


有没有更好的办法?


呼啦一阵风
浏览 201回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答