a標籤下載多個檔案
網上查詢的方法:
建立a標籤模擬點選事件
downloadMulti (name, url) {
var aDom = document.createElement('a')
var evt = document.createEvent('HTMLEvents')
evt.initEvent('click', false, false)
aDom.download = name
aDom.href = '/file/download?file_path=' + url
aDom.dispatchEvent(evt)
aDom.click()
},
其中/file/download?file_path= 是後臺寫的一個服務,只需要把連結拼好賦值給a標籤的href。然後呼叫 downloadMulti (name, url) 將檔名和連結傳入就OK了
專案中具體做法(AngularJs):
downloadFile: function (files) {
var aLink = document.createElement("a");
aLink.download = files[$scope.panel.fileNum].fileName;
aLink.href = files[$scope.panel.fileNum].location;
aLink.click();
$scope.panel.fileNum = $scope.panel.fileNum + 1;
//時間間隔,否則只會下載一個檔案
if ($scope.panel.fileNum < files.length ) {
$timeout(function () {
$scope.panel.downloadFile(files)
}, 1000);
} else {
$scope.panel.fileNum = 0;
}
}