node(express)实现文件的下载
每次都在使用a标签的download属性来下载文件,突然想,如果要借助服务端又如何主动请求文件的下载呢?
一、纯前端方式
只要给对了路径,就可以完全脱离后端,使用a标签的download属性下载。
二、服务端配合
这儿使用express来做服务端,用express不用node主要是因为省去路由配置的问题,只关注于下载方面。
app.get('/test', (req, res) => {
res.set({
"Content-Type":"application/octet-stream", //告诉浏览器这是一个二进制文件
"Content-Disposition":"attachment; filename=1.txt"//告诉浏览器这是一个需要下载的文件
});
fs.createReadStream('./public/file/test.txt').pipe(res);
});