node.js - 无法从 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 文件。
正确的程序是什么??
解决方案
您使用的路径无效,请使用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)
推荐阅读
- javascript - 如何获取 js-cookie
- reactjs - .env 常量在 React 项目中不可读
- rest - REST API 是否应该返回嵌套对象或指向该对象的链接?
- python - 如何从输入字段中获取数据并在 Tkinter 的函数中使用它
- c# - 点击生成的html组件调用方法
- excel - 在列中查找文本范围并将搜索结果写入excel中的其他列
- python - 如何在views.py中调用django自定义编写的AuthenticationBackend的authenticate()方法?
- matlab - 如何在同一轴上绘制三个同时图?
- android - 您不能在 onCreate 调用错误之前请求 ViewModel
- android - 无法从 Android 调用 React 本机函数