js 下载各种类型的文件到本地,和base64流的图片下载(包括IE)

Chrome

通过a标签下载

使用js或者jq 都可以,这里演示一下jq的用法:

第一种

//fileType 是需要下载的文件类型 如txt格式传入text/plain,doc格式传入application/msword 等
//fileText 是文件内容
//fileName 是下载文件的名字
function downloadFile(fileType, fileText, fileName) {
    var downloadA = $('<a style="display:none"></a>').appendTo('body'); //创建标签
    downloadA.attr({ 'href': "data:" + fileType + ";charset=utf-8," + fileText, "download": fileName });
    downloadA[0].click(); //手动触发点击事件
    downloadA.remove(); //删除标签
}

downloadFile('text/plain', '文本内容。。。', '文件');  //调用

如果是下载base64流的图片:

var filePic = ''; //base64数据流
var fileName = '图片'; //要下载的图片名称
var downloadA = $('<a style="display:none"></a>').appendTo('body');
downloadA.attr({ 'href': "data:image/png;base64," + filePic, "download": fileName });
downloadA[0].click();
downloadA.remove();

第二种

//fileType 是需要下载的文件类型 如txt格式传入text/plain,doc格式传入application/msword 等
//fileText 是文件内容
//fileName 是下载文件的名字
function downloadFile(fileType, fileText, fileName) {
    var downloadA = $('<a style="display:none"></a>').appendTo('body');
    var data = new Blob([fileText],{type: fileType+";charset=UTF-8"});
    var downloadUrl = window.URL.createObjectURL(data);
    downloadA.attr({ 'href': downloadUrl, "download": fileName });
    downloadA[0].click();
    downloadA.remove();
}

// downloadFile('text/plain', '文本内容。。。', '文件');  //调用

IE

if(window.navigator.msSaveBlob){
    let blob = new Blob(['数据'], {type: "text/csv,charset=utf-8"});
    window.navigator.msSaveBlob(blob, '文件.txt');
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值