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操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
jqTransform美化表单
Oct 10 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
详解Angular系列之变化检测(Change Detection)
Feb 26 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 Javascript
小程序页面动态配置实现方法
Feb 05 Javascript
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
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与SQL注入攻击[一]
2007/04/17 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
Python中一些深不见底的“坑”
2019/06/12 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
自我评价范文点评
2013/12/04 职场文书
英文自荐信
2013/12/19 职场文书
青年文明号汇报材料
2014/12/23 职场文书
地震慰问信
2015/02/14 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
思想品德课教学反思
2016/02/24 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers