二進制文件損壞-如何下載帶有AngularJS的二進制文件下載任何文件使用ResponseEntity與角不工作我需要下載一個文件使用角在客戶端,這個文件可以有任何格式,它可以是一個pdf或Excel,圖像或txt.我的方法只適用于txt文件,給出了Excel和圖像的失敗格式,而對于pdf,它給出了一個空的pdf。因此,在我的控制器中,有一個調用服務方法的函數: vm.downloadFile = downloadFile;
function downloadFile(file){
var urlDir = "C://STCI//"+idpeticion;
return VerDocServices.downloadFile(file,urlDir)
.then(function(response) {
var data = response.data;
var filename = file;
var contentType = 'application/octet-stream';//octet-stream
var linkElement = document.createElement('a');
try {
var blob = new Blob([ data ], {
type : contentType });
var url = window.URL.createObjectURL(blob);
linkElement.setAttribute('href', url);
linkElement.setAttribute("download", filename);
var clickEvent = new MouseEvent("click", {
"view" : window,
"bubbles" : true,
"cancelable" : false
});
linkElement.dispatchEvent(clickEvent);
} catch (ex) {
console.log(ex);
throw ex;
}
}).catch(function(response) {
alert('Se ha producido un error al exportar del documento');
console.log(response.status);
throw response;
});
}我的服務處有:angular.module('mecenzApp').service('VerDocServices',['$http',function($http) {this.downloadFile = function(file,urlDir) {
return $http.get('api/downloadFile', {
params : {
file : file,
urlDir : urlDir }
}); }} ]);請你看一看,告訴我錯過了什么嗎?謝謝:)
2 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
如何使用AngularJS下載二進制文件
responseType
:
app.service('VerDocServices',['$http',function($http) { this.downloadFile = function(url, file, urlDir) { var config = { //SET responseType responseType: 'blob', params : { file : file, urlDir : urlDir } }; return $http.get(url, config) .then(function(response) { return response.data; }).catch(function(response) { console.log("ERROR: ", response.status); throw response; }); }; }]);
responseType
- 2 回答
- 0 關注
- 713 瀏覽
添加回答
舉報
0/150
提交
取消