Javascript - 在客户端目录中读取文件

时间:2013-06-15 02:02:38

标签: javascript readfile

我是一个学习javascript的新程序员,我实际上是js的新手。 我有一个任务需要一个能够读取客户端目录中的文件的网页。我有一些js代码:

<html>
<script type="text/javascript">
    function ReadWeight() {
        var filePath = "file:///D:/Text.txt";
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET",filePath,false);
        xmlhttp.send(null);
        var fileContent = xmlhttp.responseText; 

        alert(fileContent);
    }

    ReadWeight();
</script>
<body>
</body>
</html>

当我将此代码保存在我的目录中并通过此链接访问时,它运行良好。

file:///D:/test.html

但是当我把它放在我的localhost中并且我访问它时,JS不起作用。

在网络服务器中我的代码是否不正确? 请帮帮我。

3 个答案:

答案 0 :(得分:0)

我建议使用错误控制台显示错误,以便人们知道如何帮助您? =]并将其粘贴到您的查询中

下载类似firebug的内容,查看是否正在发出请求(适用于FireFox)

答案 1 :(得分:0)

您希望通过http://协议而不是file://

来访问该文件

答案 2 :(得分:0)

据我所知,您只能使用<input type="file">元素读取客户端文件。获得文件后,您可以多次阅读:

<强> HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>File Refresh</title>
  <script src="filerefresh.js"></script>
</head>

<body>
  <input id="fileInput" type="file">
  <pre id="fileDisplay"></pre>
</body>
</html>

<强> JavaScript的:

(function() {
    var sleepInterval = 1000; // 1 second
    var fileInput;
    var fileDisplay;
    var reader;
    var id = undefined;
    function initialize() {
        fileInput = document.getElementById("fileInput");
        fileDisplay = document.getElementById("fileDisplay");
        reader = new FileReader();
        reader.onloadend = function() {
            fileDisplay.innerHTML = reader.result;
            reschedule();
        };
        fileInput.addEventListener("change", readFile);
    }
    function reschedule() {
        if (id !== undefined) {
            clearTimeout(id);
        }
        id = setTimeout(readFile, sleepInterval);
    }
    function readFile() {
        reader.readAsText(fileInput.files[0]);
    }

    window.onload = initialize;
})();