Express+Nodejs 下的页面中通过文件链接下载文件
之前在做页面时候只要给一个a 标签的href属性赋值为要下载的文件在服务器的路径就能点击下载,但这次在nodejs服务器下请求 http://XXXX.XXXX.XXXX.XXXX/excel/xx.xlsx 却总是提示can’t请求某某页面,着实很奇怪,后来想到到public下的静态资源肯定能访问吧,于是乎就在app.use(express.static(__dirname + "/public"));
后面紧接了一句app.use(express.static(__dirname + "/excel"));
,确实成功下载到了
1 回复
因为express进行了路由控制,不是像php,asp原生那样请求路径对应于文件路径。除了你提到的static资源,其它的请求路径都要配置。 除了使用static的方式,还可以定义路由,然后在后台程序用res.download方法来下载文件,并且可以方便管理文件权限和信息。 比如路由
app.get('/attachment/:id',function(req,res,next){
//..db get file realpath
res.download(realpath,filename);
});