如何用javascript操作本地文件

JavaScript014

如何用javascript操作本地文件,第1张

除非是恐怖分子设计的浏览器,否则任何负责任的浏览器都是严禁网页脚本直接操作本地文件。你可以想象一下,如果某一天你打开一个网站,你电脑上的一个文件就不知不觉到了另一个人的电脑中,你什么感觉,反正我是觉得世界末日就要到来了。

当然,如果你的js代码是单独放在一个js脚本文件中,然后在本地通过鼠标双击来运行你的js代码,或者把包含js代码的html文件保存在本地,然后鼠标双击来运行它(而不是在浏览器地址栏输入url来运行),这样是可以操作本地文件的(浏览器可能会发出警告,忽略即可),最简单的就是利用fso组件。

向本地写入数据的方法有以下几点:

1、ajax把要写的数据提交到后台后后台用io写  纯前台貌似正规途径不可能的样子。

2、如果写到服务器端呢。就是所谓的localhost:8080

3、ajax把要写的数据提交到后台后后台用io写  纯前台貌似正规途径不可能的样子,如图:

如果写到服务器端呢。就是所谓的localhost:8080

4、javasript能读取本地的json文件,但是无法写入,读取也本来就是hack的形式读取的,并不像服务端语言那样可以直接操作io,所以最好是后端语言结合使用操作io。

JS是浏览器脚本文件,实现页面内容的计算、显示和交互。例如点击按钮弹出一个详细信息,播放音频,展开二三级菜单,显示更多内容及滚动显示轮播等等。页面样式和弱交互一般CSS可以实现,但复杂的就需要JS来实现。随着JS的发展,JS在浏览器端能实现的功能越来越多,例如经典的JQuery,最近几年发展起来的React、Angularjs和Vue.js,这些JS框架给前端开发带来了极大的便利,可以非常高效的实现复杂的页面数据调用和交互,网页的功能也越来越强大,甚至出现了非常多的网页运用,例如百度脑图、微信图文编辑器等等在线工具。

但是,所有这些功能仅限于浏览器端,JS依赖浏览器来解释执行。浏览器作为安装到系统中的原生软件,是有权限操作本地文件的,比如浏览器自动更新、上传文件和下载文件。但是,如果把操作本地文件的权限开放给JS,就意味着,开发者只需要写一个JS,放到某个地址,用户打开这个链接,浏览器执行JS,就开始操作本地文件。于是,显而易见,只需要一个JS就可以做以下事情:自动上传用户的文件、资料,删除、修改用户的文件、软件,自动下载文件、软件甚至木马到用户本地。

计算机安全问题最大的隐患就是互联网,我们连网站的安全都无法完全保障,又怎么能开放那么大的原生软件才有的权限给网页自己的脚本文件JS呢?如果JS能修改和操作本地文件,那么只要打开一个连接,就相当于直接装上一个不认识的软件到自己的系统里!可以搜索查询到指定目录下发送你的聊天记录、帐号资料等等,这是多么危险的行为。如果一个浏览器如此不完全,谁还会用这种浏览器呢?

所以JS语言在设计之处,就没有这个功能。直到HTML5的File API,也只能实现读取(需要用户主动操作)本地文件(只读方式),在内存中操作和修改,修改完了以后只能上传或者download,对本地原有文件无法产生任何影响。

同时浏览器也给很多操作限制了权限,例如上传文件、上传图片换头像等功能,只能用户通过主动点击事件和主动选择文件来实现,JS无法自动上传。JS本身有打开新窗口的功能,但是也是需要用户主动点击或者Enter键才能触发,否则会被浏览器拦截,并显示被拦截信息。高危行为,都有限制。

当然,也不是完全没有办法,你可以通过Node.js实现,让JS像PHP一样实现后端脚本功能。前提是要自己安装配置一堆东西,你的JS就能操作本地文件了。但是用户肯定不会这么干,也不知道怎么安装,浏览器本身就有安全隔离,如果你是自己要实现JS操作本地文件可以用这个思路,如果是给别人用户非常困难。