JavaScript 直接操作本地文件的实现代码


Posted in Javascript onDecember 01, 2009

日前,Mozilla向W3C提交了一个草案,旨在推出一个JavaScript API,让JavaScript 脚本直接操作本地文件,Firefox的最新浏览器版本中已经对该API提供了大量的支持,不过出于安全考虑,该API将只对本地文件提供有限的访问。
该API引入了一个FileReader 对象,可以异步加载本地文件系统中的文件,并允许开发者为诸如加载失败,进度,加载完成等事件分配回调函数,它提供的方法可以从本地文件中读取文本或二进制数据,并通过一个 abort 方法随时打断操作。

FileReader对象使客户端的文件访问成为现实,用户不必再象以前那样首先将文件上传到服务器才能处理,事实上,IE 和 Firefox 已经拥有一些非标准的方法访问本地文件,但这些方法并非标准 JavaScript 行为。

FileReader对象并不需要特别的权限,但出于显然的安全考虑,直接使用文件路径进行访问是不允许的,必须结合常规的 HTML file 对象,用户点击浏览之后,选择本地文件,JavaScript 再通过 DOM 引用该文件并进行操作,这个机制使得该 API 相对安全一些,因为任何本地文件的获取都需要用户的人工参与。

以下例子使用该 API 打开一个本地文件并将文件内容显示在一个 div 容器中,我们甚至可以在 div 上加上 contentEditable 属性,用户可以直接编辑文件的内容,不过,该 API 并没有提供将文件内容写回本地文件的方法,因此你编辑的内容无法保存。
JavaScript 直接操作本地文件的实现代码
尽管在JavaScript中增加API并非多么重大的技术革命,但它将拓展 Web 应用的视野,让 Web 平台实现越来越多的功能。

Javascript 相关文章推荐
使用prototype.js进行异步操作
Feb 07 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
JS设置时间无效问题的解决办法
Feb 18 Javascript
详解js几个绕不开的事件兼容写法
Aug 30 Javascript
微信小程序数据存储与取值详解
Jan 30 Javascript
element el-input directive数字进行控制
Oct 11 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
JS自定义右键菜单实现代码解析
Jul 16 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
Oct 02 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
Ajax实现局部刷新的方法实例
Mar 31 Javascript
js 变量类型转换常用函数与代码[比较全]
Dec 01 #Javascript
Jquery 快速构建可拖曳的购物车DragDrop
Nov 30 #Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 #Javascript
Ruffy javascript 学习笔记
Nov 30 #Javascript
jquery 分页控件实现代码
Nov 30 #Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
Nov 30 #Javascript
Aptana调试javascript图解教程
Nov 30 #Javascript
You might like
PHP系统流量分析的程序
2006/10/09 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
Python制作词云的方法
2018/01/03 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python3.4中清屏的处理方法
2020/07/06 Python
python 模拟登陆163邮箱
2020/12/15 Python
杭州-DOTNET笔试题集
2013/09/25 面试题
企业党员公开承诺书
2014/03/26 职场文书
2015年元旦活动总结
2014/05/09 职场文书
项目投资建议书
2014/05/16 职场文书
村安全生产责任书
2014/08/25 职场文书
2014最新离职证明范本
2014/09/12 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
Python 数据可视化之Seaborn详解
2021/11/02 Python
JavaScript文档对象模型DOM
2021/11/20 Javascript