如何使用Javascript FileReader()打开本地文件

时间:2015-06-02 12:35:45

标签: javascript filereader local-files

我想修改this code以便它仅适用于特定文件,但我无法找出正确的网址参数以及我发现的所有代码示例都使用了文件选择对话框。

<!DOCTYPE html>
<html>
  <head>
    <title>reading file</title>
    <script type="text/javascript">

        var reader = new FileReader();

        function readText(that){

            if(that.files && that.files[0]){
                var reader = new FileReader();
                reader.onload = function (e) {  
                    var output=e.target.result;

                    //process text to show only lines with "@":             
                    output=output.split("\n").filter(/./.test, /\@/).join("\n");

                    document.getElementById('main').innerHTML= output;
                };//end onload()
                reader.readAsText(that.files[0]);
            }//end if html5 filelist support
        } 
</script>
</head>
  <body>
    <input type="file" onchange='readText(this)' />
    <div id="main"></div>
  </body>

当我从以下地址更改代码时,为什么它不起作用?

<body>
    <input type="file" onchange='readText(this)' />
    <div id="main"></div>
</body>

为:

<body onload="readText('file:///C:/test.txt')">
    <div id="main"></div>
</body>

1 个答案:

答案 0 :(得分:6)

由于安全限制,浏览器不能提供此类功能。您不允许读取本地文件,直到用户无法在文件选择对话框中选择特定文件(或者不会通过拖放操作来完成此操作)。这就是为什么所有代码​​示例都使用文件选择对话框的原因。

更多详情Does HTML5 allow you to interact with local client files from within a browser