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 相关文章推荐
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
jquery实现全屏滚动
Dec 28 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
利用JS实现数字增长
Jul 28 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
Jun 03 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 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 表单提交给自己
2008/07/24 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
php生成扇形比例图实例
2013/11/06 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
详解vuejs之v-for列表渲染
2017/06/22 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
Python 模板引擎的注入问题分析
2017/01/01 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
基于python3生成标签云代码解析
2020/02/18 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
请假条格式范文
2014/04/10 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
大学学生个人总结
2015/02/15 职场文书
遗嘱格式范本
2015/08/07 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS