【问题标题】:Save Javascript file object to local storage将 Javascript 文件对象保存到本地存储
【发布时间】:2013-03-13 02:29:26
【问题描述】:

我有一个输入类型文件,我将文件保存到这样的文件对象中

var uploadControl = document.getElementById("fileUpload");
var files = uploadControl.files[0];

然后我想将该文件保存到本地存储,以便稍后读入 FileReader 对象。有谁知道这是否可能。我尝试了几种不同的选项,每次尝试从本地存储中检索对象时,它都是未定义的。

这是我尝试过的一些事情

var setObj = {"prop": "myProp", "file": files};
chrome.storage.sync.set({"myObj":setObj});

这不会引发错误,但是当我尝试检索对象时,它是未定义的

chrome.storage.sync.get("myObj", function(item) {
console.log("item name: " + item.myObj.file.name);
});

但是我可以访问对象的其他属性

chrome.storage.sync.get("myObj", function(item) {
    console.log("item prop: " + item.myObj.prop);
    });

将对象添加到本地存储时我做错了什么还是我访问不正确?还是根本不可能做到这一点?

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    localStorage 只能包含字符串名称/值对,这意味着您不能直接存储对象。您可以使用stringifyparse

    【讨论】:

    • 简单的json序列化对象。 :)
    • 猜我错过了本地存储文档的键/值对部分。谢谢!这解决了我的问题。
    • 实际上,这确实解决了我在保存对象方面的问题,但是一旦我解析它,我仍然无法阅读它。我猜当对象转换为 JSON 时文件路径信息会被删除。有没有人成功保存了一个文件对象,然后用 FileReader 接口读取它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 2015-07-28
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多