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 相关文章推荐
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
Jul 31 Javascript
jquery foreach使用示例
Sep 12 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
Jan 12 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
详解使用React制作一个模态框
Mar 14 Javascript
vue实现图片预览组件封装与使用
Jul 13 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 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利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
让您的菜单不离网站
2006/10/03 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python根据出生年份简单计算生肖的方法
2015/03/27 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python对象转换为json的方法步骤
2019/04/25 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Python操作Jira库常用方法解析
2020/04/10 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
《春到梅花山》教学反思
2014/04/16 职场文书
先进员工事迹材料
2014/12/20 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js