JS创建文件下载

var hrefvalue = "data:application/vnd.ms-excel;base64," + wbout;
anchor.download = filename + '.txt';	//格式随意
anchor.href = hrefvalue;

服务器端

HTML5的新特性中给a标签增加了一个download属性,在download属性中填入文件名,href填入本来要跳转的地址(跳页面下载页面,跳文件下载文件,比如之前你都是一点pdf直接打开了,现在就可以一点就下载了),即可下载对应的文件使得点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载(目前只有chrome、firefox和opera支持)。

<a href="www.xxx.com/document/a.txt" download="newname.txt">

客户端

方法一,DataURI,比较常见的就是图片的src,如:
<img src=”data:image/gif;base64,R0lGOXXXXX">

DataURI讲解:

首先URL不只是常见的那种,也有用于传输数据的,
上面那个例子包含以下部分:
data - 取得数据的协定名称
image/png - 数据类型名称
base64 - 数据的编码方法
R0lGOXXXXX… - 编码后的数据
: , ; - data URI scheme 指定的分隔符号
意思就是,传输一个用base64编码方式的img文件

什么是base64

简单地说它把一些 8-bit 数据翻译成标准 ASCII 字符,js和php都可以进行base64处理
引文:http://www.alloyteam.com/2014/01/use-js-file-download/

function downloadFile(fileName, content){
    var aLink = document.createElement('a');
    var blob = new Blob([content]);
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈
    aLink.download = fileName;
    aLink.href = URL.createObjectURL(blob);
    aLink.dispatchEvent(evt);
}
发布了34 篇原创文章 · 获赞 4 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Tianyi_liang/article/details/65446267