zoukankan      html  css  js  c++  java
  • 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;
        }

    区分了大小写

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

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    关于http
    事件循环机制
    关于常问的输入URL到看到页面发生的全过程
    浅拷贝
    基础知识链接
  • 原文地址:https://www.cnblogs.com/firstdream/p/14760564.html
Copyright © 2011-2022 走看看