利用浏览器做一个工具时,往往操作的对象就是文件本身,我们需要打开文件,然后对文件进行处理,最后,将处理后的数据,以文件的形式保存起来

那么:我们怎么保存文件呢?

以下提供两个方案 :

1 大家都不陌生,我们在浏览器上经常使用,单击一个链接,启动下载,如下:

function createDownloadLink(dataUrl,fileName){var save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a");save_link.download = fileName;save_link.href = dataUrl;
}
function click = function(node) {var event = doc.createEvent("MouseEvents");event.initMouseEvent("click", true, false, view, 0, 0, 0, 0, 0, false, false, false, false, 0, null);node.dispatchEvent(event);}
var dataUrl = "data:xxxxxxxxxxxxxxxxxxxxxxx";//资源的dataUrl
var saveLink = createDownLoadLink(dataUrl);
click(saveLink);

原理是创建一个下载的链接,将连接的href 用dataUrl赋值。然后触发链接的点击事件,实现下载。

2 利用html5 进行保存文件操作

关键步骤:

var req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem ;
req_fs(window.TEMPORARY, 5*1024*1024,createAndSaveFile);
function createAndSaveFile(fs){
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {// Create a FileWriter object for our FileEntry (log.txt).fileEntry.createWriter(function(fileWriter) {fileWriter.onwriteend = function(e) {console.log('Write completed.');};fileWriter.onerror = function(e) {console.log('Write failed: ' + e.toString());};// Create a new Blob and write it to log.txt.var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.bb.append('Lorem Ipsum');fileWriter.write(bb.getBlob('text/plain'));}, errorHandler);}, errorHandler);}

参考:

https://github.com/eligrey/FileSaver.js/

http://www.html5rocks.com/zh/tutorials/file/filesystem/   重点

http://stackoverflow.com/questions/13130070/html5-filesystems-api-letting-users-save-files-to-their-actual-filesystem

http://www.html5rocks.com/zh/tutorials/file/filesystem/

http://www.xyhtml5.com/read-and-save-files-using-javascript.html

html5 保存文件相关推荐

  1. 允许保存文件 html5,html5 保存文件

    利用浏览器做一个工具时,往往操作的对象就是文件本身,我们需要打开文件,然后对文件进行处理,最后,将处理后的数据,以文件的形式保存起来 那么:我们怎么保存文件呢? 以下提供两个方案 : 1 大家都不陌生 ...

  2. HTML5 本地文件操作之FileSystemAPI整理(二)

    一.文件目录操作 1.DirectoryEntry对象 属性: 1.isFile: 操作对象的是否为文件,DirectoryEntry对象固定其值为false 2.isDirectory: 操作对象是 ...

  3. html5页面输出语句,使用html5输出文件

    在html5中,我们可以使用canvas.toDataURL("类型");这是实际就是把绘制的图片等等保存到打他URL地址指向的数据中,而不是真正的一个物理地址,但是我们可以通过这 ...

  4. HTML5 本地文件操作之FileSystemAPI整理(一)

    一.请求配额 DeprecatedStorageInfo对象 window.webkitStorageInfo:当使用持久存储模式时需要用到该对象的接口 方法: 1.requestQuota(type ...

  5. Html5大文件断点续传实现方法

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  6. FileSaver.js 客户端保存文件的解决方案

    介绍: FileSaver.js是一个HTML5 saveAs()FileSaver实现,它是在客户端保存文件的解决方案,非常适合在客户端生成文件的web应用程序! 效果: 代码: <!DOCT ...

  7. 简述vi编辑器的启动\退出\保存文件

    vi是一个特殊的命令,也不光是命令还是Linux下的编辑器,由于篇幅关系就不在这边多做举例说明,讲在以后配置网络服务时介绍一些vi的实际应用. vi命令是Linux下全屏幕文本编辑,vi编辑提供了丰富 ...

  8. Eclipse保存文件时出现字符编码错误

    Eclipse保存文件时出现字符编码错误,如下图所示: Ecplise的默认编码,如下图所示: eclipse 由于开源所以支持了比较杂的编码方式,而这些一个工程导入时添加了不少的外来程序,由于不是同 ...

  9. R语言sink函数保存文件实战

    R语言sink函数保存文件实战 目录 R语言sink函数保存文件实战 #sink函数导出字符串到txt文件

最新文章

  1. C#入门篇5-5:流程控制语句 dowhile
  2. A. 本地DNS服务器的位置
  3. 相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)
  4. UI5 table display visible row count logic calculation calculate
  5. 求助:安装程序无法创建一个DCOM用户帐号来注册.....\valec.exe
  6. java中i+=2什么意思_三分钟看懂Java中i++与++i的性能差别以及循环中如何使用
  7. LinuX编译显示内核配置无效,配置编译内核(Linux kernel)
  8. 字典超详细--python
  9. I Hate It(HDU-1754)
  10. AI持续赋能,搜狗S1会给录音笔行业带来哪些新变化?
  11. [Java] 蓝桥杯 BEGIN-3 入门训练 圆的面积
  12. 什么是mixin,为什么它们有用?
  13. 按位与、按位或、按位异或、左移、右移运算符的简单介绍(部分二进制运算符的简单介绍)...
  14. android最贵的手机,2019翻盖手机排行榜_2019年最贵的手机有哪些?最贵手机排行榜...
  15. HTTP下载龙卷风系列Office/Photoshop/金山词霸快译/
  16. [资源分享]yslow 与firebug 修复版本Firefox35【绿色版本下载】
  17. 计算机用户原始密码是多少,administrator初始密码是多少
  18. java520.1314表白_告白日表白公式 520.1314 临沂人知道怎么玩吗
  19. 如何修改、缩小截图图片大小,压缩图片。
  20. ng-include

热门文章

  1. 7034mysql意外停止_中国名创解决mysql数据库意外自动关闭(停止)的问题
  2. java多线程计算1/1+1/2+...+1/n为何比单线程要慢?!?
  3. 信息科学与计算机课件,电子信息技术概述ppt课件
  4. 承认吧星巴克,你就是个卖杯子的
  5. mysql tmd文件_TMD终于把MySQL卸载掉了
  6. python数字水印_Python实现批量图片添加数字水印
  7. 文件结束的判定与feof函数
  8. JAVA模拟WebSocket客户端,支持wss ssl证书
  9. 匆匆那年,写给过去年轻的自己 @2014
  10. 视频直播app源码直播弹幕系统如何实现