每次都在使用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); });
输入http://127.0.0.1:端口/test就可以下载了。