繁体   English   中英

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

[英]is it possible to read a file using javascript?

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

我们所做的

fp=("r","path")

那是可能的吗?

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

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

从浏览器中读取本地文件

如果浏览器支持新的File API ,您可以通过input[type=file]元素读取用户授予您读取权限的任何文件。 规格 | StackOverflow上的示例

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

这可以在使用“ajax”的所有主要浏览器上完成,更具体地说是XMLHttpRequest对象 它可以通过jQueryPrototypeYUIClosure其他任何库来实现

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

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

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

说过这是可能的,但你受限于你能做什么。

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

有可能通过

  1. Windows脚本宿主对象模型(WScript.Shell),当授予提示或启用ActiveX访问权限时,浏览器具有提升的权限(通过工具> Internet选项>安全性>自定义级别...>设置活动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); } 

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM