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 实现上下滚动效果示例代码
Aug 09 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
JavaScript中数组成员的添加、删除介绍
Dec 30 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
Mar 07 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
微信小程序基于Taro的分享图片功能实践详解
Jul 12 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
Sep 14 Javascript
Vue封装Axios请求和拦截器的步骤
Sep 16 Javascript
Javascript实现关闭广告效果
Jan 29 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
python实现挑选出来100以内的质数
2015/03/24 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
python可以用哪些数据库
2020/06/22 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
教师自我鉴定范文
2013/11/10 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
新兵入伍心得体会
2014/09/04 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
退学证明范本3篇
2014/10/29 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
听证会主持词
2015/07/03 职场文书
python - asyncio异步编程
2021/04/06 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
PyTorch中permute的使用方法
2022/04/26 Python