Ali*_*Ali 3 javascript zip angularjs
我正在尝试从我的服务器(spring mvc 控制器)下载一个 zip 文件。这是我在 angularjs (1.5) 控制器中下载 zip 文件的代码。
$http({
url: '/myurl',
method: 'GET',
headers: {
'Content-type': 'application/zip'
},
responseType: 'arraybuffer'
}).success(function (data,status,headers) {
var blob = new Blob([data], {type: "application/zip"});
var objectUrl = URL.createObjectURL(blob);
var file = headers('Content-Disposition');
window.open(objectUrl);
});
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但我需要给出我在响应头中得到的文件名。我从 header('Content-Disposition') 得到文件名如何使用这个文件名下载文件?目前它给出了任何随机文件名。
我尝试了下面的代码,它在 chrome 中工作,但在 mozilla 中不起作用......还有其他解决方案可以在所有浏览器中使用吗?
//var anchor = document.createElement("a");
//anchor.download = "ATMOSLogFiles.zip";
//anchor.href = objectUrl;
//anchor.click();
Run Code Online (Sandbox Code Playgroud)
感谢帮助 !
您可以使用angular-file-saver来实现这一点。
var app = angular.module('myApp', ['ngFileSaver'])
app.controller('ExampleCtrl', ['FileSaver', 'Blob', function () {
$scope.download = function () {
var myData = new Blob([text], { type: 'text/plain;charset=utf-8' });
FileSaver.saveAs(myData, 'text.txt');
}
}]);
Run Code Online (Sandbox Code Playgroud)
通过使用 HTML5下载属性/ MDN 文档的简单方法。不需要斑点。任何支持 AngularJS 的浏览器和浏览器版本都支持此属性(不包括 IE10/IE11 - IE Edge 支持它)。
<a href="<downloadLink>" download="fileName">Download</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18173 次 |
| 最近记录: |