<a></a>标签,download属性不下载,而是打开.doc、.txt、.mp3、img,解决方法

本文介绍了一种解决同源文件在浏览器中仅预览而不自动下载的方法,通过将GET请求转换为文件流,实现了无论是图片、文档还是MP3等格式的文件都能直接下载,而不仅仅是在线预览。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情况:公司特别钟爱,导出,下载,批量下载,打印,批量打印,今天遇到下载mp3文件时,只是在线打开,并不下载。因为同源的文件,浏览器默认是打开预览,不同源的才下载。利用get请求转成文件流就可以了。

解决方法:

//解决本身就是在线图片,或者文档的下载(同源也能下载)
downRow(index,data){ 
        let that = this
        let oReq = new XMLHttpRequest();        
            oReq.open("GET", 'http://xxxxx.com/666.mp3', true);        
            oReq.responseType = "blob";  
            //oReq.withCredentials = true;//如果跨域             
             oReq.onload = function (oEvent) {            
              let content = oReq.response;            
              let elink = document.createElement('a');            
              elink.download = '666.mp3';    
              elink.style.display = 'none';               
               let blob = new Blob([content]) 
               elink.href = URL.createObjectURL(blob);            
               document.body.appendChild(elink);            
               elink.click();            
               document.body.removeChild(elink);        
        };       
              oReq.send();
    },
//解决文件流下载,不管同不同源只要是文件流就能下载,对于非文件流结果是在线打开预览
//window.open('xxx') //csv,xlsx能下载,pdf,txt,img会打开
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘斩仙的笔记本

富贵险中求

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值