是否可以使用javascript读取文件?

时间:2011-02-17 12:31:12

标签: javascript file

大家好我只是想知道我们是否可以使用javascript来读取文件

我们做什么

fp=("r","path")
像这样可能吗?

6 个答案:

答案 0 :(得分:5)

不,这在浏览器中是不可能的。 Javascript在沙盒环境中运行,无法访问文件系统。您可能需要在客户端浏览器上安装特殊插件才能访问其文件系统。

答案 1 :(得分:3)

,即使在某些浏览器中也是如此。

从浏览器中读取本地文件

如果,浏览器支持新的File API,您可以阅读用户授予您通过input[type=file]元素阅读的任何文件。 Specification | Example here on StackOverflow

从浏览器中读取服务器文件

这可以在使用“ajax”的所有主流浏览器上完成,更具体地说是XMLHttpRequest objectjQueryPrototypeYUIClosureany of several others等图书馆使这一过程变得更加轻松。

在服务器,工作站等(不在浏览器中)

您需要一个提供文件读取的环境,例如NodeJS

答案 2 :(得分:2)

从客户端阅读:how to read a text file using Javascript

从服务器读取:jquery - Read a text file?

答案 3 :(得分:2)

首先,我认为使用JavaScript在本地读取文件并不是一个好主意。我建议先将其上传到服务器然后执行读取。

说过这是可能的,但是你受限于你可以做的事情。

我假设它在用户机器上有一个本地文件,否则AJAX会为服务器读取实现此目的。

可能通过

  1. Windows脚本宿主对象模型(WScript.Shell)和 授予提示或启用访问权限时 到ActiveX浏览器已提升 特权(通过工具>启用) 互联网选项>安全>习惯 等级......>将Active X设置为 提示)。如果这仍然很困难,用户可以下载已安装的东西,然后通过Shell Scripting进行读取! 免责声明:注意我不推荐这种方法。由于某种原因它不活跃,它太脏了(我觉得很脏)!

  2. Cookie也值得考虑。如果您可以将信息存储在cookie中,JavaScript将能够读取,写入和更新它。

    http://www.quirksmode.org/js/cookies.html找到此代码向右滚动到底部 示例

    function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
    

    }

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    
    function eraseCookie(name) {
        createCookie(name,"",-1);
    }
    

答案 4 :(得分:0)

使用现代浏览器中提供的新File API,可以在javascript中读取客户端文件。查看此网站及其代码:http://www.readfileonline.com/

答案 5 :(得分:-2)

你可以,但是你必须使用AJAX,这是用于服务器端作业的Javascript。