二進(jìn)制文件損壞-如何下載帶有AngularJS的二進(jìn)制文件下載任何文件使用ResponseEntity與角不工作我需要下載一個(gè)文件使用角在客戶端,這個(gè)文件可以有任何格式,它可以是一個(gè)pdf或Excel,圖像或txt.我的方法只適用于txt文件,給出了Excel和圖像的失敗格式,而對(duì)于pdf,它給出了一個(gè)空的pdf。因此,在我的控制器中,有一個(gè)調(diào)用服務(wù)方法的函數(shù): 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;
});
}我的服務(wù)處有:angular.module('mecenzApp').service('VerDocServices',['$http',function($http) {this.downloadFile = function(file,urlDir) {
return $http.get('api/downloadFile', {
params : {
file : file,
urlDir : urlDir }
}); }} ]);請(qǐng)你看一看,告訴我錯(cuò)過了什么嗎?謝謝:)
2 回答

小怪獸愛吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
如何使用AngularJS下載二進(jìn)制文件
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 關(guān)注
- 709 瀏覽
添加回答
舉報(bào)
0/150
提交
取消