我正在嘗試使用JavaScript和Google Chrome應用讀取本地文件(我認爲它可能無法通過Chrome瀏覽器),但我看不到最新的解決方法。Javascript,FileReader vs XMLHttpRequest讀取本地文件?
我可以用下面的代碼閱讀:
obj.read = function() {
return new Promise(function(resolve){
var xmlhttp = new XMLHttpRequest();
var file_path = 'file_name.xml';
xmlhttp.open('GET', file_path, true);
xmlhttp.send(null);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
let xml = xmlhttp.responseText;
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xml, "text/xml");
console.log(xml);
console.log(xmlDoc);
resolve(xmlDoc);
}
}
});
};
但它是像我應該使用類似
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
console.log(e.target.result);
};
})(file_path);
var file_path = 'file_name.xml';
var file_parts = [
new Blob(['you construct a file...'],{type: 'text/plain'}),
'Same way as you do with blob',
new Uint16Array([33])
];
var file = new File(file_parts, file_path);
reader.readAsText(file);
(從https://stackoverflow.com/a/24495213/826815複製) (我有一個硬找到關於此主題的文獻)
那麼,怎麼做呢?
有幾件事不清楚:1)「我可以用下面的代碼讀取它」 - 那爲什麼不是一個好方法?你爲什麼要改變它? 2)你的意思是什麼「本地文件」?您的示例適用於應用程序包內的文件。這就是你需要的一切嗎? – Xan
1)這就是問題,這是「好」的方法?有沒有第二種方法?如果是這樣,我應該選擇哪一個? 2)通過本地文件我的意思是一個文件位於應用程序所在的同一個文件夾中,但由於我還沒有打包它,我只能猜測它會在應用程序的包中 – Gerard