Javascript 使用js从本地存储读取文件

Javascript 使用js从本地存储读取文件,javascript,Javascript,嗨,我正在使用java脚本从我的电脑读取txt文件。 我试着用三种方式来做: function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function() { if (rawFile.ready

嗨,我正在使用java脚本从我的电脑读取txt文件。 我试着用三种方式来做:

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
它们都指向同一个文件 我犯了这样一个错误:

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
无法加载XMLHttpRequestfile:///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来修复它:
--禁用web安全性


请注意,这存在安全漏洞。

由于安全原因,浏览器不允许通过javascript访问文件,请查找下面的链接

但在HTML5中,通过使用文件上传/下载、链接
读取文件的第一种方法:

readTextFile(“text.txt”)//好的

正在工作,因为
“text.txt”
是一个相对路径,与文件系统相同:

\index.html
\img\img.png
index.html可以访问img.png。在这方面,您可以使用相对路径设置访问父目录和parrent父目录中的文件和文件夹

在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://
的限制很可能是出于安全原因。您可能想查看更多详细信息。

您可以随时做一件事,那就是将它放在应用程序访问它的某个url上(仅当它不包含任何安全信息时).

JavaScript由于安全原因无法访问本地文件系统。
XMLHttpRequest
对跨源代码有一些限制。也就是说,对于你这样做的方式,
D://
file:///D:/
使文件看起来像是在源代码之外访问的。您需要使用javascript读取本地文件。选择文件,然后运行URL.createObjectURL(inpFile.files[0]);要获取url,可以按编码方式将其馈送到readTextFile()函数。您不能在输入中硬编码路径,出于安全原因,用户必须选择该文件。