网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    文件读取在当今的编程语言中应该算是一项比较 trivial 的工作了,语言的标准库一般都会帮助我们做好文件抽象与读写缓存,我们仅需要熟悉和运用相关的 API 即可.


    但是 JavaScript 由于安全性的原因,一直以来都没有提供相关的文件读取接口,但有时我们确实需要读取本地文件内容,下面是两种可能的读取方法.


    1. 使用 HTML5 中的 FileReader

    HTML5 引入的 FileReader 可以帮助我们读取本地文件,但是有一个限制,就是我们不能直接使用文件路径的方式来访问文件,而是首先需要用户选择文件(通过文件选择或者拖动文件至网页等方式)


    代码还是比较简单的,首先你需要在 html 文件中添加文件选择表单:

    <input type="file" id="file-input" />
    <div id="file-content" />


    接着就可以在 JavaScript 中进行(用户选择的)文件读取了:

    function readSingleFile(e) {
        // file from "file-input"
        var file = e.target.files[0];
        if (!file) {
          return;
        }
      
        // create FileReader
        var reader = new FileReader();
      
        // load callback
        reader.onload = function(e) {
          var contents = e.target.result;
        
          // process file contents here
          // ...
        
        };
      
        // do read
        reader.readAsText(file);
    }
    // add file input change listener
    var fileInput = document.getElementById("file-input");
    fileInput.addEventListener("change", readSingleFile, false);


    2. 使用 XMLHttpRequest

    XMLHttpRequest 一般用于实现 Ajax,通过他我们也可以实现本地文件的读取(但是有同源等限制),示例代码如下:

    var contents = "";
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
            contents = xmlhttp.responseText;
            
            // process file contents here
            // ...
          
        }
    };
    // send read request
    xmlhttp.open("GET","abc.txt",true);
    xmlhttp.send();

    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部