问题描述
我生成的前preSS基于某些用户输入
。该信息是通过 XLSX
文件后
要求提交的,我想通过返回文件的内容res.download(...)
。
如果我这样做,我得到了数据垃圾
我的 AJAX
响应的领域。
我试着使用提示下载this解决方案,但内容仍然是垃圾。
这是我的角度控制器:
$ scope.generateSoldGoodsReport =功能(){
reportService.generateSoldGoodsReport({
开始日期:$ scope.startDate,
结束日期:$ scope.endDate
})
。然后(函数(报告){
VAR BLOB =新的Blob([报告] {类型:应用程序/ XLSX'});
$ scope.url =(window.URL || window.webkitURL).createObjectURL(BLOB);
})
}
和这里是我的服务:
generateSoldGoodsReport:功能(日期){
VAR递延= $ q.defer() $ http.post('/ API /安全/ generateSoldGoodsReport',日期)
。然后(功能(响应){
deferred.resolve(response.data)
})
返回deferred.promise
}
和这里是我的服务器端code:
sendFileResponse =功能(RES){
返回功能(ERR,fileDetails){
如果(ERR)
{
res.json({
错误:1,
消息:err.message,
详细:err.errors
})
}
其他
{
res.download(fileDetails.path +/+ fileDetails.fileName)
}
}
}
在结束时,我结束了使用的解决方案,其中在后
要求我生成报告时响应被送到我做了一个 GET
请求到predefined地方储存生成报告的客户端。因为我用两个请求,而不是一个我不喜欢这种解决方案。
I am generating an xlsx
file based on some user input in express
. The info is submitted via a post
request and I wanted to return the content of the file via res.download(...)
.
If I do that I get "garbage" in the data
field of my ajax
response.
I tried to prompt a download using this solution, but the content is still "garbage".
This is my angular controller:
$scope.generateSoldGoodsReport = function() { reportService.generateSoldGoodsReport({ startDate: $scope.startDate, endDate: $scope.endDate }) .then(function(report){ var blob = new Blob([ report ], { type : 'application/xlsx' }); $scope.url = (window.URL || window.webkitURL).createObjectURL( blob ); }) }
and here is my service:
generateSoldGoodsReport: function (dates) { var deferred = $q.defer() $http.post('/api/secure/generateSoldGoodsReport', dates) .then(function(response){ deferred.resolve(response.data) }) return deferred.promise }
and here is my server side code:
sendFileResponse = function (res) { return function (err, fileDetails) { if (err) { res.json({ error: 1, message: err.message, detailed: err.errors }) } else { res.download(fileDetails.path + '/' + fileDetails.fileName) } } }
In the end I ended up using a solution where in a post
request I generated the report and when the response was sent to the client I made a get
request to a predefined place where the generated report was stored. I don't like this solution because I use two requests instead of one.
这篇关于如何从EX preSS下载XLSX在角的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!