iframe一次下載多個文件實例
背景
在項目開發(fā)中,點擊 【導(dǎo)出】按鈕需要下載兩個 excel 文件,之前下載文件都是使用的 window.location.href = '下載url' 就能實現(xiàn)下載功能,但是只能是單文件的下載,多文件的下載需要借助 iframe 來實現(xiàn)。
解決方案
使用 iframe 可以實現(xiàn)一個點擊按鈕下載多個文件,具體實現(xiàn)如下:
const urlArr = ['https://test.com/order_export_1663644115.csv', 'https://test.com/order_export_1663644223.csv']
function exportExcel(url) {
const iframe = document.createElement('iframe');
iframe.style = none; // 防止影響現(xiàn)有頁面內(nèi)容
iframe.src = url;
document.body.appendChild(iframe) // iframe 必須掛載到 dom 樹才會發(fā)送請求
iframe.onload = function () {
document.body.removeAttribute(iframe) // 之后刪除iframe
}
}
urlArr.forEach((item) => {
exportExcel(item)
})
當(dāng)時使用的這個方案下載文件,服務(wù)端返回的文件地址的是阿里云的oss對象存儲,然后下載MP4 或者 image 文件的時候一直打開預(yù)覽,不會觸發(fā)瀏覽器下載行為
解決方案是:可以設(shè)置文件的響應(yīng)頭或者,在請求url后面拼接
'?response-content-type=application/octet-stream';
以上就是iframe一次下載多個文件實例的詳細(xì)內(nèi)容,更多關(guān)于iframe下載多個文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript中Date對象的getDay方法使用指南
這篇文章主要介紹了javascript中Date對象的getDay方法使用以及各種優(yōu)化方案,非常不錯的文章,這里推薦給大家。2014-12-12

