一般在浏览器中下载txt文件会直接打开,解决办法是在location中配置Content-Disposition attachment;在nginx中通过反向代理可以直接过滤访问的url在指定的访问中添加header。
今天在配置的时候遇到了这样的问题:点击下载直接打开,放在server中也不会生效,为了这个反复试了好久,最后在浏览器中查看response header,发现:
Content-Disposition 后面多了个冒号,这是因为配置的时候 Content-Disposition attachment;语句写成Content-Disposition: attachment; 这样在火狐和ie中是没有问题的,但是谷歌会出现这样的问题,所以配置的时候去掉冒号就可以解决了。
下面附上正确下载txt等配置方式:
location /{
if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){
add_header Content-Disposition "attachment;";
}
}