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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
浅谈javascript的调试
Jan 28 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
Jul 01 Javascript
Vue.js Ajax动态参数与列表显示实现方法
Oct 20 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
详解vue-cli开发环境跨域问题解决方案
Jun 06 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 15 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 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实现文件下载(支持中文文名)
2013/12/04 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
旅游管理毕业生自荐书
2014/02/02 职场文书
建材投资建议书
2014/05/16 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
岗位安全生产责任书
2014/07/28 职场文书
田径运动会通讯稿
2014/09/13 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
Django与数据库交互的实现
2021/06/03 Python
我收到了德劲DE1107
2022/04/05 无线电