当前位置: 首页 > 知识库问答 >
问题:

如何从Express下载一个角的xlsx

伯彦君
2023-03-14

我生成一个xlsx文件基于一些用户输入Express。信息是通过post请求提交的,我想通过res.download(...)返回文件的内容。

如果我这样做,我会在我的ajax响应的data字段中得到“垃圾”。

我试图使用此解决方案提示下载,但内容仍然是“垃圾”。

这是我的角度控制器:

$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 );
        })
    }

这是我的服务:

generateSoldGoodsReport: function (dates) {
    var deferred = $q.defer()

    $http.post('/api/secure/generateSoldGoodsReport', dates)
                        .then(function(response){
                            deferred.resolve(response.data)
                        })
        return deferred.promise
    }

这是我的服务器端代码:

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)
         }
      }
 }

共有1个答案

隆宏爽
2023-03-14

最后,我使用了一个解决方案,在post请求中我生成了报告,当响应发送到客户端时,我向存储生成报告的预定义位置发出了get请求。我不喜欢这个解决方案,因为我使用两个请求而不是一个。

 类似资料:
  • 问题内容: 我有两个AWS账户-假设A和B. 在帐户B中,我定义了一个角色,该角色允许从帐户A中访问另一个角​​色。我们称其为角色B 在帐户A中,我定义了一个角色,该角色允许root用户承担角色。让我们称之为角色A 角色A附加了以下策略 作为帐户A的用户,我担任角色A。现在使用此临时凭据,我想承担角色B并访问帐户B拥有的资源。我有以下代码 该代码适用于我从客户端获得的一组角色,但不适用于我在我有权

  • 问题内容: 如何将服务器中的文件下载到访问nodeJS服务器中页面的计算机上? 我正在使用ExpressJS,并且一直在尝试这样做: 但是我无法获取文件名和文件类型(或扩展名)。有人可以帮我吗? 问题答案: 更新资料 Express 为此提供了一个帮助,使生活更加轻松。 旧答案 就您的浏览器而言,该文件的名称仅为“下载”,因此您需要使用另一个HTTP标头为其提供更多信息。 您可能还想发送一个mim

  • 到底应该怎么做才能重定向回一个有角度的页面?这是我的输入&来自html的按钮(无角页面) 位于todo-speck.js中,如下所示; 使用在上一个角度页上最后调用以关闭同步。请记住,这个小页面在将用户重定向到即将到来的有角度的页面之前与支付网关服务进行通信。我试图关闭同步,但没有缓解。 另外要注意的是:当我一分钟又一分钟地运行相同的脚本时,我似乎会得到两个不同的错误。我猜是和超时有关。一个是;

  • 我正在用量角器在竹子上进行E2E测试。我收到了这个错误未知错误:Chrome启动失败:异常退出(未知错误:DevToolsActivePort文件不存在) 然后我发现我不得不降级到2.37版本的Chrome驱动程序。我发现这里“https://github.com/angular/protractor/issues/4850”。 我在这里找到了下载chromedriver特定版本的方法https:

  • 问题内容: 我正在尝试使用setRequestProperty(“ Range”,“ bytes =” + startbytes +“-” + endbytes);给定下载URL来下载文件的一部分。以下代码片段显示了我要执行的操作。 问题是,正在引发一个异常,该异常表示“建立连接后无法设置请求属性”。请帮助我解决此问题。 问题答案: 假设您正在使用HTTP进行下载,则需要使用HEAD http动词

  • 我正在努力从用户界面下载一个pdf文件(角),从Spring Boot生成。我可以用相同的API从浏览器下载pdf文件。 非常感谢快速的帮助。 SyntaxError:XMLHttpRequest.onload消息:“JSON at position 0”Stack:“SyntaxError:JSON at position 0 at JSON.Parse()at XMLHttpRequest.o