【问题标题】:getting node.js to send buffer as a file让 node.js 将缓冲区作为文件发送
【发布时间】:2016-09-15 23:24:47
【问题描述】:

我正在尝试在服务器端创建一个 Excel 工作簿,当用户访问某个路线时发送给用户(使用 express.js) 我正在使用来自https://github.com/riyadhalnur/excelbuilderjs-node 的模块 我在workBookB64 常量中确实有大量数据,并且在我的浏览器(chrome)中,在res.end() 调用之后,我确实获得了处置和内容类型的标头。 但是该文件永远不会在浏览器端下载。 我的节点进程在 Nginx 反向代理后面运行,以处理 SSL。 关于如何下载文件的任何想法都会很棒!

    const result      = Excel.createFile( workBook );
    const workBookB64 = new Buffer( result, 'base64' );

    res.setHeader( 'Content-Disposition', 'attachment; filename=' + fileName );
    res.setHeader( 'Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64' );
    res.end( workBookB64 );

投反对票,甚至没有评论?我现在觉得很脏,很习惯。 :(

【问题讨论】:

    标签: javascript node.js excel nginx download


    【解决方案1】:

    我自己解决了这个问题。事实证明,问题在于我如何请求 URL。客户端代码使用 jQuery 调用: $.get("/getReport") 所以响应回到了这个没有回调处理程序的调用。所以对我来说,它似乎不起作用。 我使用的方案是去掉JS,只用一个锚标签,直接调用URL。

    注意:如果您也觉得有必要对我的回答投反对票,请至少发表评论。

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 2019-05-09
      • 2018-07-13
      • 2014-03-01
      相关资源
      最近更新 更多