nginx防止浏览器自动打开下载的文件


1.防止浏览器自动打开文件而不是下载文件,添加

add_header Content-Disposition "attachment;";

举例:#所有文件都不打开

location / {
       add_header Content-Disposition "attachment;filename*=utf-8'zh_cn'$arg_n";
 }

2.一般存储在服务器上的文件都不会用原来的名字,所以下载的时候需要改名,可通过url中添加参数,然后在nginx中根本参数来改名

举例 参数为n=xxx.jpg        //这里的n不能改成name,会失效

url:https"//xxxxx?n=xxx.jpg       //表示把下载下来的文件名字改为xxx.jpg

nginx需要配置成

location / {
     if ($request_uri ~* ^.*\?n=([^&]+)$) {
           add_header Content-Disposition "filename=$arg_n";
     }
}

注释:里面的utf-8是有些浏览器会自动把文件改成urlencode的格式

一般1,2都是要一起配置的

 location / {
                if ($request_uri ~* ^.*\?n=([^&]+)$) {
                        add_header Content-Disposition "attachment;filename=$arg_n";
                }
    }

3.不区分大小写 i

例如:

 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|tiff|mkv|mp4|avi|rm|rmvb|flv|wmv)$
    {
                add_header Content-Disposition "attachment;";
                expires 30d;
                # access_log off;
    }

区分了大小写

不区分大小写把~改成~*


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM