js 下载各种类型的文件到本地,和base64流的图片下载

通过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', '文本内容。。。', '文件');  //调用

猜你喜欢

转载自blog.csdn.net/document_dom/article/details/104022230