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 相关文章推荐
新浪的图片新闻效果
Jan 13 Javascript
javascript attachEvent和addEventListener使用方法
Mar 19 Javascript
在模板页面的js使用办法
Apr 01 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
js判断复选框是否选中及选中个数的实现代码
May 30 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 Javascript
jquery插件实现图片悬浮
Apr 16 jQuery
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
drupal 代码实现URL重写
2011/05/04 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
新手简单了解vue
2019/05/29 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
python格式化字符串实例总结
2014/09/28 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python装饰器简单用法实例小结
2018/12/03 Python
Python类装饰器实现方法详解
2018/12/21 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
人事行政主管岗位职责
2013/12/22 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
党员查摆剖析材料
2014/10/10 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
中秋节主题班会
2015/08/14 职场文书
《给予树》教学反思
2016/03/03 职场文书
分家协议书范本
2016/03/22 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
jquery插件实现悬浮的菜单
2021/04/24 jQuery
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers