【问题标题】:How do I read a text file on my local disk into a variable in javascript如何将本地磁盘上的文本文件读入 javascript 中的变量
【发布时间】:2012-06-15 08:11:39
【问题描述】:

您好,我正在尝试从本地机器读取 .json 文件。它不会在我使用的代码中读取它是:

jQuery.getJSON('../json/test.json') 
    .done(function(data) {
        var test = data;
        alert("sucsess");
    })
    .fail(function(data){
    alert("failed");

});

我从中得到的只是失败了我做错了什么。我没有通过服务器。

【问题讨论】:

  • 如果您的网络服务器不在本地机器上,这将不起作用。

标签: javascript jquery json


【解决方案1】:

使用文件 API。这是包含示例代码和演示的指南:

【讨论】:

    【解决方案2】:

    查看fiddle

    <title>reading Text files</title> 
    <body>
        <input type="file" id="files" name="files[]" multiple />
        <output id="list"></output>
        <script>
          function handleFileSelect(evt) {
            var files = evt.target.files; // FileList object
    
            // Loop through the FileList
            for (var i = 0, f; f = files[i]; i++) {
    
            var reader = new FileReader();
    
            // Closure to capture the file information.
            reader.onload = (function(theFile) {
                return function(e) {
                    // Print the contents of the file
                    var span = document.createElement('span');                    
                    span.innerHTML = ['<p>',e.target.result,'</p>'].join('');
                    document.getElementById('list').insertBefore(span, null);
                };
            })(f);
    
            // Read in the file
            //reader.readAsDataText(f,UTF-8);
            //reader.readAsDataURL(f);
    
            reader.readAsText(f);
            }
        }
        document.getElementById('files').addEventListener('change', handleFileSelect, false);
        </script>
    </body>
    

    【讨论】:

      【解决方案3】:

      抱歉,如果您从本地驱动器运行页面(地址栏的格式为 file:///path 到您的页面),那么您可以从磁盘读取文件,但如果您从网络服务器运行脚本 (@987654321 @.) 您无法从本地驱动器读取文件。它可以保护您免于从用户驱动器中窃取信息。您可能需要上传文件才能阅读它

      编辑:我必须收回它。新的浏览器将允许您根据用户事件读取文件。如果用户点击文件输入并打开一个文件,那么你可以阅读它

      【讨论】:

        【解决方案4】:

        由于安全原因等原因,您无法通过 JavaScript 访问本地计算机上的文件......

        JavaScript 和 DOM 为恶意作者提供了可能 通过网络交付脚本以在客户端计算机上运行。浏览器 作者使用两个限制来控制这种风险。一、脚本运行 在沙盒中,他们只能执行与 Web 相关的操作,不能执行 通用编程任务,例如创建文件。

        但我找到了这个网站,但从未尝试过,也许对你有帮助: Reading local files in JavaScript

        编辑:如果您永远不会在网络服务器上运行您的代码,而只在您的本地系统上执行它(在浏览器中调用 index.html,例如:C:/Users/user/index.html你可以访问它,但如果这个网站应该上线,我想,那是行不通的

        【讨论】:

          【解决方案5】:

          如果您谈论的是本地(客户端)系统上的文件而不是服务器上的文件,那么使用简单的 javascript 是不可能的。您无法访问本地文件系统资源。

          【讨论】:

            【解决方案6】:

            jQuery.getJSON 调用是异步的,因此您只能在 function(data){...} 中看到您的测试变量

            【讨论】:

              猜你喜欢
              • 2011-04-04
              • 2023-03-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多