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 相关文章推荐
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
javascript中call apply 与 bind方法详解
Mar 10 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
jquery实现输入框实时输入触发事件代码
Dec 21 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
详解Angular2 关于*ngFor 嵌套循环
May 22 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 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/12/06 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python实现给微信公众号发送消息的方法
2017/06/30 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python ellipsis 的用法详解
2020/11/20 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
新品发布会主持词
2014/04/02 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
告知书格式
2015/07/01 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
田径运动会广播稿
2015/08/19 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
Python中的变量与常量
2021/11/11 Python