javascript - 如何将输入类型文件的数组保存在存储位置?

标签 javascript jquery json file-upload local-storage

嗨,我想保存输入类型文件的数组。

<input type="file" id="fuGerber" onchange="saveFiles(this.files)" multiple />

我已经尝试过这个:

localStorage.setItem('files',JSON.stringify(files));

或者这个:

 localStorage.setItem('files',JSON.stringify(files[0]));

但是 JSON.stringify 返回空“{}”,或者在第二种情况下返回“{”0”:{}}” 有谁知道如何保存它而不丢失数组内的任何内容。

这是我的数组:

This is what my array have

最佳答案

也许您缺少使用文件读取器来实际读取文件输入中的数据,然后将其存储在数组中,然后再将其保存到 localStorage

查看此答案 here .

更新:

因此,在 JSFiddle 中复制问题后,我终于意识到您遇到了问题。问题是 FileList 不是数组( see here ),它是自定义列表类型。因此,JSON 编码器不知道如何正确编码。

要从 FileList 中获取数据,您必须手动创建 FileList 中每个文件的文件对象,将每个对象推送到数组\,然后您就可以字符串化并设置为 localStorage。

执行上述操作后,我能够成功保存文件: View of files array in localStorage

查看我的代码示例:

JSFiddle

干杯!我希望这有帮助:)

关于javascript - 如何将输入类型文件的数组保存在存储位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42123969/

相关文章:

javascript - JQuery(Javascript)/CSS,在不使用定位的情况下重新排列 DIV 内元素顺序的方法?

javascript - 如何制作移动响应垂直范围 slider

Python Nose 测试在 JSON 响应上失败

javascript - 带有淡入的循环 jQuery 函数

php - 是否可以用 Goutte 解析 JSON?

javascript - 元素列表后缺少 ] (使用 reviver 进行 JSON.parse )

javascript - 如何清空表中的项目列表

javascript - 在 DevExpress 图表控件中显示条形内的提示数据

javascript - 尝试在backbone.js应用程序中重构谷歌地图的监听器回调

javascript - 在javascript中播放音频时更改左/右平衡