簡體   English   中英

使用js從本地存儲讀取文件

[英]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

請注意,這具有安全漏洞。

出於安全原因,瀏覽器不允許通過javascript文件訪問,請找到以下鏈接。

安全

但是在HTML5中,可以通過使用文件上傳/下載,鏈接文件更新/下載來實現

讀取文件的第一種方法:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM