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 相关文章推荐
表格 隔行换色升级版
Nov 07 Javascript
JS弹出窗口代码大全(详细整理)
Dec 21 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
javascript 数字格式化输出的实现代码
Dec 10 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
jquery获取radio值实例
Oct 16 Javascript
JS html时钟制作代码分享
Mar 03 Javascript
vue实现app页面切换动画效果实例
May 23 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
深入理解es6块级作用域的使用
Mar 28 Javascript
JS高级程序设计之class继承重点详解
Jul 07 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
cmd下运行php脚本
2008/11/25 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
jquery实现图片预加载
2015/12/25 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python中的字典操作及字典函数
2018/01/03 Python
详解python和matlab的优势与区别
2019/06/28 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
大学生求职信范文应怎么写
2014/01/01 职场文书
业务内勤岗位职责
2014/04/30 职场文书
班级出游活动计划书
2014/08/15 职场文书