Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从硬编码的路径和文件名中逐行读取Java脚本中的文件?_Javascript_Html_File_Readfile_Eof - Fatal编程技术网

Javascript 如何从硬编码的路径和文件名中逐行读取Java脚本中的文件?

Javascript 如何从硬编码的路径和文件名中逐行读取Java脚本中的文件?,javascript,html,file,readfile,eof,Javascript,Html,File,Readfile,Eof,我想用Java脚本读取文件。 最好是逐行读取,但也有可能一次读取整个文件。 一般来说,在web上有很多实现,但我希望通过在Java脚本代码中输入硬编码的路径和文件名,而不是任何按钮或类似的内容,以非常简单的方式读取文件。下面是伪代码: <!DOCTYPE html> <html> <body> <script type="text/javascript"> var file = FileReader("home/test.t

我想用Java脚本读取文件。 最好是逐行读取,但也有可能一次读取整个文件。 一般来说,在web上有很多实现,但我希望通过在Java脚本代码中输入硬编码的路径和文件名,而不是任何按钮或类似的内容,以非常简单的方式读取文件。下面是伪代码:

<!DOCTYPE html>
<html>
<body>
    <script type="text/javascript">
        var file = FileReader("home/test.txt");//hardcoded path and name of the file
        var listOfLines = [];
        var line = file.readLine();
        while(line != eof) {
            listOfLines.push(file.readLine());
            file.readLine();
        }
    </script>
</body>
</html>

var file=FileReader(“home/test.txt”)//文件的硬编码路径和名称
var-listOfLines=[];
var line=file.readLine();
while(line!=eof){
listOfLines.push(file.readLine());
readLine()文件;
}
有这样的可能性吗。
谢谢。

FileReader运行良好,支持良好,请参阅:

甚至IE也有部分支持

但它只能读取用户返回的文件。您无法从开发人员处读取任何具有硬编码路径的文件。当然,出于安全原因,浏览器中的javascript引擎在沙箱中运行

PS 此外,要从javascript读取大型csv文件,我建议使用我多次成功使用的库:

参考:


如果浏览器可以从文件系统读取任意文件,那么这将是一个相当大的安全漏洞。想想看,网络上的每一条横幅都可以读取操作系统的配置文件等等

同时检查此问题/答案:
稍微不同的问题,相同的问题

但是如果客户端给你的应用程序你应该处理的文件,那就不同了

//使用fetch()获取文件内容
函数fetchFile(文件){
常量{name,lastModified,size,type}=file;
返回获取(URL.createObjectURL(文件))
.then(response=>response.text())
.then(text=>({name,lastModified,size,type,text}));
}
//使用文件阅读器获取内容
函数readFile(文件){
常量{name,lastModified,size,type}=file;
返回新承诺((解决、拒绝)=>{
const reader=new FileReader();
reader.onload=()=>resolve(reader.result);
reader.onerror=拒绝;
reader.readAsText(文件);
})
.then(text=>({name,lastModified,size,type,text}));
}
让输入=document.querySelector('input');
input.onchange=函数(){
const promises=[…input.files].map(fetchFile);//fetch
//const promises=[…input.files].map(readFile);//FileReader
所有(承诺)
。然后(文件=>{
console.log(文件);
})
}

网页中运行的JavaScript无法访问本地计算机上的文件。如果您试图访问web服务器上的另一个文件,您可以通过Ajax请求——google“Ajax请求”。@Occam'sRazor@Thomas-是的,我在考虑文件系统。。谢谢