Javascript,如何读取本地文件?

标签 javascript

我尝试从服务器读取本地文件。我一直在“谷歌搜索”这个话题一段时间,有人说这是不可能的,其他人说可以做到。在这次搜索中,我发现了这个脚本:

Read a file using xmlhttprequest

If the HTML file with your javascript app has been saved to disk, this is an easy way to read in a data file. Writing out is more complicated and requires either an ActiveX object (IE) or XPCOM (Mozilla).

fname - relative path to the file

callback - function to call with file text


function readFileHttp(fname, callback) {

    xmlhttp = getXmlHttp();

    xmlhttp.onreadystatechange = function() {

        if (xmlhttp.readyState==4) { 

            callback(xmlhttp.responseText); 

        }

    }

    xmlhttp.open("GET", fname, true);

    xmlhttp.send(null);

}

Return a cross-browser xmlhttp request object


function getXmlHttp() {

    if (window.XMLHttpRequest) {

        xmlhttp=new XMLHttpRequest();

    } else if (window.ActiveXObject) {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    }

    if (xmlhttp == null) {

        alert("Your browser does not support XMLHTTP.");

    }

    return xmlhttp;

}

但是不知道怎么用,回调函数应该怎么看?您能否提供使用这些功能的示例代码?

最佳答案

能够从您的浏览器读取本地文件将是对安全性的重大破坏 - 我不喜欢我访问的任何网站能够在我的浏览器中运行可以从我的硬盘驱动器读取文件的代码的想法。通常,ajax 请求仅限于页面源自的域。 (但是,您可以使用 JSONP 等技术在一定程度上解决此问题。)即使页面源自本地文件系统,大多数浏览器也不会让您读取本地文件。

提到的其他方法应该允许您从域(即使它是 localhost)读取文件,但不能直接从文件系统读取文件。

关于Javascript,如何读取本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511970/

相关文章:

javascript - 单击另一个元素时恢复以前的值

javascript - 嵌套数组以及 ID 和 NAME

javascript - 如何动态绑定(bind)事件

javascript - 通过可滚动条增加谷歌地图上的圆圈半径

javascript - 使用 :hover. 时如何使用 CSS 定位 div 弹出窗口 ..?

javascript - 从传递到构造函数的函数访问 javascript 对象的属性

javascript - 如何使用 JavaScript SDK 将位置信息发布到 Facebook

javascript - 在 Backbone.js 中将函数设置为属性给我一个错误,但如果我在初始化方法中设置它,它就会工作

javascript - 无法在自定义 WordPress 主题中运行 JS 文件

javascript - d3.js 如何定位和更改元素的属性