有用户反馈说在我们网站点击下载PDF文件会在浏览器直接打开而没有下载到本地。
由于我们网站是前后端分离,前端请求后端接口,后端生成文件保存到服务器,然后再返回文件路径给前端,前端在直接访问文件路径下载文件。访问文件路径来下载文件是用nginx配置静态资源服务器实现。我百度了很久,终于找到解决办法了,在nginx配置文件添加下面语句即可。add_header可以指定 response的header头部信息。只要是html,pdf文件都直接下载而不是打开浏览。
location / {
if ($request_filename ~* ^.*?\.(html|doc|pdf|zip|docx)$) {
add_header Content-Disposition attachment;
add_header Content-Type application/octet-stream;
}
}