小知识:nginx文件强制下载的配置方法

现在的浏览器能够识别很多文件类型(txt,pdf,jpg…),并在浏览器中自动打开

情况一: 添加头信息Content-Disposition “attachment;”会使浏览器强制下载:

复制代码代码如下:

#表示浏览器内嵌显示一个文件

Content-disposition: inline; filename=foobar.pdf

#表示会下载文件,如火狐浏览器中

Content-disposition: attachment; filename=foobar.pdf

nginx配置如下,在相应的server中添加如下location:

复制代码代码如下:

location /upload {

    add_header Content-Disposition “attachment;”;

}

情况二:

有这么一个需求,对于图片文件和pdf等文件链接,只要访问实在某个路径下,不能在浏览器中打开图片,而是提示用户保存到本地,文件名使用访问的文件名。

这个问题主要是IE造成的,不管mime类型是什么,比如人工把图片的mime类型设置为octet-stream,如果浏览器认识文件后缀的话,仍然会在浏览器中打开图片,IE浏览器够垃圾的吧?

解决方案:

在响应的http头添加:Content-Disposition: attachment; filename=文件名

nginx配置如下:
复制代码代码如下:

        location ~ ^/somepath/(.*)$ {

            add_header Content-Disposition “attachment; filename=$1”;

            alias “E:/apache-tomcat-7.0.32/webapps/upload/$1”;

        }

这里使用到了正则表达式,捕获请求的文件名。

另外,需要注意nginx的location优先级,首先是=,然后是^~,最后才是~。

这样,IE浏览器就会忽略掉原mime类型,提示用户把文件保存到本地。
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Nginx中虚拟主机与指定访问路径的设置方法讲解

2023-5-1 1:04:07

建站知识

小知识:Nginx1.8.0版本平滑升级新版本1.9.7

2023-5-1 1:22:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索