[英]read file from local storage using js
嗨,我正在使用Java腳本從我的電腦讀取txt文件。 我嘗試通過3種方式做到這一點:
function readTextFile(file) {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
if (rawFile.status === 200 || rawFile.status == 0) {
var allText = rawFile.responseText;
console.log(allText);
}
}
}
rawFile.send(null);
}
console.log("1");
readTextFile("text.txt"); //GOOD
console.log("2");
readTextFile("D:/Documents/Documents/Aptana Studio 3 Workspace/Yonit_web_services/test/text.txt"); //BAD
console.log("3");
readTextFile("file:///D:/Documents/Documents/Aptana Studio 3 Workspace/Yonit_web_services/test/text.txt"); //BAD
他們所有人都指向同一個文件,我得到這樣的錯誤:
XMLHttpRequest無法加載文件:/// D:/Documents/Documents/Aptana%20Studio%203%20Workspace/Yonit_web_services/test/text.txt。 跨源請求僅支持HTTP。 test.html:21readTextFile test.html:21(匿名函數)test.html:26
那是什么? 謝謝。
不久前,我遇到了同樣的問題。 我通過使用以下參數通過Windows命令提示符打開Chrome來修復此問題:-- --disable-web-security
請注意,這具有安全漏洞。
讀取文件的第一種方法:
readTextFile("text.txt"); //GOOD
之所以起作用,是因為"text.txt"
是相對路徑(與使用文件系統時相同):
\index.html
\img\img.png
在這方面,index.html可以訪問img.png,您可以使用相對路徑訪問父級和父級的父級目錄中的文件和文件夾。
在Windows命令提示符下,您可以使用dir
測試這些相對路徑,如下所示:
REM Dir will show contents of current directory
Dir
REM Dir .. will show contents of parent directory
Dir ..
REM Dir ../.. will show contents of parent's parent directory
Dir ../..
同樣的路徑應該在JavaScript中起作用
話雖如此,出於安全原因,最有可能對d:/
和file://D:/
進行限制。 您可能想查看http://en.wikipedia.org/wiki/Samba_%28software%29了解更多詳細信息。
您總是可以做一件事,並將其放在應用程序從其訪問的某個URL上(僅當它不包含任何安全信息時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.