Javascript 使用js从本地存储读取文件
嗨,我正在使用java脚本从我的电脑读取txt文件。 我试着用三种方式来做:Javascript 使用js从本地存储读取文件,javascript,Javascript,嗨,我正在使用java脚本从我的电脑读取txt文件。 我试着用三种方式来做: function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function() { if (rawFile.ready
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()函数。您不能在输入中硬编码路径,出于安全原因,用户必须选择该文件。