jsマルチファイルの一括ダウンロードを実現
6454 ワード
互換性に関する質問:
, ; ,IE , target='_blank'。
2019.8.19より
単一ファイルの一括ダウンロード
方法一:H 5 新しいプロパティ
HTML 5には
のラベルにdownload
の属性が追加されており、ダウンロード機能を簡単に利用することができます.download
のプロパティ値はオプションで、ダウンロードファイルのファイル名を指定します.Download file
方法2:js
jsの実現の構想は:
1、タブを追加
ラベルhref
プロパティdownload
プロパティ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(); //
2、H 5の新しい特性を使わない場合、動的にを追加する
は独立してウィンドウを開き、要求を開始します.要求が完了すると、インタフェースは自動的に閉じます.
1 var frame = $('
ファイルがそうでない .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を1つの に し、 をループしてダウンロードをトリガーする:
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)
}
})
リファレンスリンク:
https://www.npmjs.com/package/ly-downloader
https://www.jianshu.com/p/2e60c15c328a
https://www.jianshu.com/p/5f9027722204
https://segmentfault.com/a/1190000005863250
https://yugasun.com/post/optimize-download-files-in-frontend.html
https://segmentfault.com/q/1010000012022240
https://www.jq22.com/webqd4287
:https://www.cnblogs.com/zhangym118/p/11352164.html