10

我需要File从文件输入中序列化一个对象,以便可以保存该对象,将其解析回文件对象,然后使用该FileReader对象进行读取。

有谁知道这在谷歌浏览器中是否可行?

我认为问题在于对 file.path 属性的保护。Webkit 浏览器隐藏了这个属性,所以我猜当你序列化它时,路径被删除了。

那么当然,如果没有路径信息,FileReader 就无法读取它。

这是一个例子:

var files = uploadControl.files[0];
var dataFile = JSON.stringify(files);
var newFile = JSON.parse(dataFile);
var reader = new FileReader();
reader.onload = (function(event) {
    var fileContents = event.target.result;
});
reader.readAsText(newFile);

没发生什么事。阅读器未加载。如果我传递 JSON 对象,它也不起作用。

4

1 回答 1

7

作为原则问题,您所要求的将是不可能的。如果可能有一些表示文件对象的文本,那么您可以从头开始构造该文本,对其进行反序列化,从而访问用户未授予权限的文件。

(例外情况是,如果代表性文本是某种只有浏览器可能首先给出的高度机密的位串(加密签名,或查找表中的稀疏密钥)——但我希望该功能存在,它会被记录在案,你会已经找到它。)

于 2013-03-15T04:20:46.020 回答