大家好我只是想知道我们是否可以使用javascript
来读取文件
我们做什么
fp=("r","path")
像这样可能吗?
答案 0 :(得分:5)
不,这在浏览器中是不可能的。 Javascript在沙盒环境中运行,无法访问文件系统。您可能需要在客户端浏览器上安装特殊插件才能访问其文件系统。
答案 1 :(得分:3)
是,即使在某些浏览器中也是如此。
如果,浏览器支持新的File API,您可以阅读用户授予您通过input[type=file]
元素阅读的任何文件。 Specification | Example here on StackOverflow
这可以在使用“ajax”的所有主流浏览器上完成,更具体地说是XMLHttpRequest
object。 jQuery,Prototype,YUI,Closure或any of several others等图书馆使这一过程变得更加轻松。
您需要一个提供文件读取的环境,例如NodeJS。
答案 2 :(得分:2)
答案 3 :(得分:2)
首先,我认为使用JavaScript在本地读取文件并不是一个好主意。我建议先将其上传到服务器然后执行读取。
说过这是可能的,但是你受限于你可以做的事情。
我假设它在用户机器上有一个本地文件,否则AJAX会为服务器读取实现此目的。
可能通过
Windows脚本宿主对象模型(WScript.Shell)和 授予提示或启用访问权限时 到ActiveX浏览器已提升 特权(通过工具>启用) 互联网选项>安全>习惯 等级......>将Active X设置为 提示)。如果这仍然很困难,用户可以下载已安装的东西,然后通过Shell Scripting进行读取! 免责声明:注意我不推荐这种方法。由于某种原因它不活跃,它太脏了(我觉得很脏)!
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。