Express+Nodejs 下的页面中通过文件链接下载文件
发布于 12 年前 作者 duyinghua 46138 次浏览 最后一次编辑是 8 年前

之前在做页面时候只要给一个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);
});
回到顶部