需求是用户在前端点击一个按钮下载储存在服务器那边的 pdf 文件
以下是前后端分离的解决方法
前端部分:
首先需要 downloadjs 依赖
npm install downloadjs
向后端发送 ajax 请求。结合自己的需求,我这里是点击按钮后发起
axios
.get('http://127.0.0.1:1919/api/getpdf',{
headers: {
'Content-Type': "multipart/form-data"
},
responseType: 'blob'
})
.then((res) => {
download(new Blob([res]), 'test.pdf', 'application/pdf');
})
.catch((err) => console.log(err))
注意一定要设置 responseType 为 blob,否则得到的 pdf 内容是空白的
后端 nodejs 部分:
router.get('/getpdf', (req, res) => {
let filePath = path.resolve(__dirname, '../', 'pdfs', 'Web应用开发组竞赛规则及说明.pdf');
let fileStream = fs.createReadStream(filePath);
let stat = fs.statSync(filePath);
res.setHeader('Content-Length', stat.size);
res.setHe

本文介绍了一种前后端分离架构下实现从服务器下载PDF文件的方法。前端使用downloadjs依赖和axios发起请求,后端通过Node.js读取并返回文件流。
最低0.47元/天 解锁文章
1743

被折叠的 条评论
为什么被折叠?



