首页 > 解决方案 > 无法从 Express 服务器下载 Excel 文件

问题描述

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

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

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

但问题是当我使用 ajax 请求时,文件没有下载,而当我使用window.open(url)zip 文件时,下载的文件包含一些奇怪的文件,而不是我的 excel 文件。

正确的程序是什么??

标签: node.jsexcel

解决方案


您使用的路径无效,请使用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)

推荐阅读