Angular spring 休息服务中的文件保护程序
Angular File Saver in spring rest service
我正在尝试实现 FileSaver.js 像这个例子 https://github.com/alferov/angular-file-saver 以通过 spring 启动应用程序下载生成的文件,我有休息服务 return 文件作为字节数组数据。
@RequestMapping(value = "/generateReport/{reportId}/{parameters}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public byte[] generateReport(@PathVariable("reportId") String reportId,
@PathVariable("parameters") String parameters
) {
byte[] bFile;
//some code
return bFile;
}
Angular 服务
'generateReport': {
method: 'GET',
responseType: 'arraybuffer' ,
url: 'adap_report/api/generateReport/:reportId/:parameters',
transformResponse: function (data) {
if (data) {
data = angular.fromJson(data);
}
return data;
}
},
Angularjs 控制器
vm.generateReport = function() {
Report.generateReport({reportId:entity.id,parameters:angular.toJson(vm.parameterList)}, function(result) {
var data = new Blob([result], { type: 'application/octet-stream' });
FileSaver.saveAs(data, 'text.txt');
});
};
文件保护器工作并下载了文件但内容错误,我刚得到包含此内容的文件
[object Object]
谁能帮我用 angular FileSaver.js 库保存生成的文件?
我已经通过http解决了
$http.get('/adap_report/api/generateReport/'+entity.id+'/'+angular.toJson(vm.parameterList), {responseType: 'arraybuffer'})
.success(function (data) {
console.log(data)
if(entity.reportoutputtypecode=="PDF"){
var blobData = new Blob([data], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(blobData);
window.open(fileURL);
}else{
var blobData = new Blob([data], {type: 'application/'+entity.reportoutputtypecode});
FileSaver.saveAs(blobData, 'jasper-file.'+entity.reportoutputtypecode);
}
});
我正在尝试实现 FileSaver.js 像这个例子 https://github.com/alferov/angular-file-saver 以通过 spring 启动应用程序下载生成的文件,我有休息服务 return 文件作为字节数组数据。
@RequestMapping(value = "/generateReport/{reportId}/{parameters}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public byte[] generateReport(@PathVariable("reportId") String reportId,
@PathVariable("parameters") String parameters
) {
byte[] bFile;
//some code
return bFile;
}
Angular 服务
'generateReport': {
method: 'GET',
responseType: 'arraybuffer' ,
url: 'adap_report/api/generateReport/:reportId/:parameters',
transformResponse: function (data) {
if (data) {
data = angular.fromJson(data);
}
return data;
}
},
Angularjs 控制器
vm.generateReport = function() {
Report.generateReport({reportId:entity.id,parameters:angular.toJson(vm.parameterList)}, function(result) {
var data = new Blob([result], { type: 'application/octet-stream' });
FileSaver.saveAs(data, 'text.txt');
});
};
文件保护器工作并下载了文件但内容错误,我刚得到包含此内容的文件
[object Object]
谁能帮我用 angular FileSaver.js 库保存生成的文件?
我已经通过http解决了
$http.get('/adap_report/api/generateReport/'+entity.id+'/'+angular.toJson(vm.parameterList), {responseType: 'arraybuffer'})
.success(function (data) {
console.log(data)
if(entity.reportoutputtypecode=="PDF"){
var blobData = new Blob([data], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(blobData);
window.open(fileURL);
}else{
var blobData = new Blob([data], {type: 'application/'+entity.reportoutputtypecode});
FileSaver.saveAs(blobData, 'jasper-file.'+entity.reportoutputtypecode);
}
});