Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Javascript文件对象保存到本地存储_Javascript_Google Chrome Extension - Fatal编程技术网

将Javascript文件对象保存到本地存储

将Javascript文件对象保存到本地存储,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个输入类型的文件,在这里我将文件保存到一个文件对象,如下所示 var uploadControl = document.getElementById("fileUpload"); var files = uploadControl.files[0]; 然后,我想将该文件保存到本地存储,以便稍后读入FileReader对象。有人知道这是否可能吗。我尝试了几种不同的选项,每次尝试从本地存储中检索对象时,它都是未定义的 以下是我尝试过的一些东西 var setObj = {"prop": "m

我有一个输入类型的文件,在这里我将文件保存到一个文件对象,如下所示

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);
    });

在将对象添加到本地存储时,我是否做错了什么,或者我是否错误地访问了它?或者这是不可能的?

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

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

只需json序列化对象即可。:)我想我错过了本地存储文档中的键/值对部分。谢谢这解决了我的问题。实际上,这确实解决了我保存对象的问题,但一旦我解析它,我仍然无法读取它。我猜当对象转换为JSON时,文件路径信息会被删除。是否有人成功地保存了一个文件对象,然后使用FileReader接口读取它?只需json序列化该对象。:)我想我错过了本地存储文档中的键/值对部分。谢谢这解决了我的问题。实际上,这确实解决了我保存对象的问题,但一旦我解析它,我仍然无法读取它。我猜当对象转换为JSON时,文件路径信息会被删除。是否有人成功地保存了文件对象,然后使用FileReader界面读取它?