碼上快樂
1秒登錄
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
js批量下載文件
本文轉載自
查看原文
2019-08-05 16:18
3296
js批量下載文件
關於兼容性問題:
<a href="xxx.docx" target='_blank'></a>
下載文件時,這種寫法是沒有兼容性問題;但是下載圖片時,IE 上會出現當前頁面直接打開圖片的問題,即便是加了 target='_blank'。
單個文件批量下載
方法一:H5 <a> 新特性
HTML 5 里面為 <a> 標簽添加了一個 download 的屬性,我們可以輕易的利用它來實現下載功能。download 的屬性值是可選的,它用來指定下載文件的文件名。
1
<a href="http://somehost/somefile.zip" download="filename.zip">Download file</a>
方法二:js
js 實現的思路是:
1、添加 <a>標簽
用 JavaScript 創建一個隱藏的 <a> 標簽
設置它的 href 屬性
設置它的 download 屬性
用 JavaScript 來觸發這個它的 click 事件
實現代碼:假設引入了 jquery.js
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = 'what-you-want.txt';
a.href = url;
a.download = filename;
a.click();
a.remove(); // 移除掉 <a>
2、如果不用 H5 新特性,動態添加 <iframe>
會獨立打開一個窗口,發起該請求,當請求完成后,該界面會自動關閉。
1 var frame = $('<iframe style="display: none;" class="multi-download"></iframe>');
2 frame.attr('src', url);
3 $(document.body).append(frame);
4 setTimeout(function() {
5 frame.remove();
6 }, 1000);
兼容 IE 360兼容模式:
如果文件不是 .png .gif .jpg 這種照片格式,可采用 window.open(url, '_blank') 下載。
function isIE () {
if (!!window.ActiveXObject || 'ActiveXObject' in window) {
return true
} else {
return false
}
},
function download () {
let url = '../../../static/cds/files/研究方案及團隊情況表.docx'
if (this.isIE()) { // IE
window.open(url, '_blank')
} else {
let a = document.createElement('a') // 創建a標簽
let e = document.createEvent('MouseEvents') // 創建鼠標事件對象
e.initEvent('click', false, false) // 初始化事件對象
a.href = url // 設置下載地址
a.download = 'xxxx表' // 設置下載文件名
a.dispatchEvent(e)
}
},
批量下載多個文件:
思路:將 url 放在一個數組里,循環數組並觸發下載:
let files = ['url1', 'url2'] // 所有文件
files.forEach(url => {
if (this.isIE()) { // IE
window.open(url, '_blank')
} else {
let a = document.createElement('a') // 創建a標簽
let e = document.createEvent('MouseEvents') // 創建鼠標事件對象
e.initEvent('click', false, false) // 初始化事件對象
a.href = url // 設置下載地址
a.download = '' // 設置下載文件名
a.dispatchEvent(e)
}
})
詳細配置信息可以參考我寫的這篇文章:
http://blog.ncmem.com/wordpress/2019/08/28/php%e6%96%87%e4%bb%b6%e6%89%b9%e9%87%8f%e4%b8%8b%e8%bd%bd/
×
免責聲明!
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。
猜您在找
js下載文件
js下載文件
js下載文件
js 下載文件
php 批量下載文件
前端批量下載文件
批量下載文件web
jquery批量下載文件
vue批量下載文件
python 批量下載文件
粵ICP備18138465號
© 2018-2025 CODEPRJ.COM