无法从快递服务器下载Excel文件

时间:2018-09-21 07:03:54

标签: node.js excel

我的后端运行了Express js,并且在一个服务器文件夹中上传了一个excel文件(.xlsx),我正在尝试下载此文件。

这是执行此任务的节点中间件

records.get('/downloadSampleExcel', (req, res) => {
    const sampleExcel = `${__dirname}/../../upload/sampleExcel/data.xlsx`
    res.download(sampleExcel)
})

但是问题是当我使用ajax请求时,该文件未下载,而当我使用window.open(url)时,则下载了一个zip文件,其中包含一些奇怪的文件而不是我的excel文件。

正确的操作步骤是什么?

1 个答案:

答案 0 :(得分:1)

您使用的路径无效,请使用path.join()模块加入路径或绝对路径

records.get('/downloadSampleExcel', (req, res) => {
    const path = require('path);
    const sampleExcel = path.join(__dirname, '../../upload/sampleExcel/data.xlsx');
    res.download(sampleExcel)
})

更新: 在res.download

之前设置标题
res.setHeader('Content-disposition', 'attachment; filename=data.xlsx');
res.setHeader('Content-type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.download(sampleExcel)