我需要从文件输入序列化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对象,它也不起作用。
答案 0 :(得分:3)
原则上,你所要求的是不可能的。如果可能有一些表示文件对象的文本,那么您可以从头开始构造该文本,对其进行反序列化,从而访问用户未授予权限的文件。
(例外情况是,如果代表性文本是某种强健的秘密位串(加密签名,或查找表中的稀疏键),只有浏览器可以首先给出 - 但我希望如果存在该功能,则会记录下来并且您已经找到它。)