a标签下载多个文件

版权声明:v1.0.0 https://blog.csdn.net/weixin_40374953/article/details/84138827

网上查找的方法:

创建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;
}
}

猜你喜欢

转载自blog.csdn.net/weixin_40374953/article/details/84138827