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类型,提示用户把文件保存到本地。

(0)

相关推荐

  • nginx文件强制下载的配置方法

    现在的浏览器能够识别很多文件类型(txt,pdf,jpg...),并在浏览器中自动打开 情况一: 添加头信息Content-Disposition "attachment;"会使浏览器强制下载: 复制代码 代码如下: #表示浏览器内嵌显示一个文件 Content-disposition: inline; filename=foobar.pdf   #表示会下载文件,如火狐浏览器中 Content-disposition: attachment; filename=foobar.pdf

  • vsftpd匿名用户上传和下载的配置方法

    看到很多朋友配置vsftpd时不能使用匿名用户上传和下载(创建目录或删除.重命名文件夹),本文主要解决vsftpd的匿名用户权限配制问题. 配置要注意三部分,请一一仔细对照: 1.vsftpd.conf文件的配置(vi /etc/vsftpd/vsftpd.conf) #允许匿名用户登录FTP anonymous_enable=YES #打开匿名用户的上传权限 anon_upload_enable=YES #打开匿名用户创建目录的权限 anon_mkdir_write_enable=YES #打

  • node.js与vue cli脚手架的下载安装配置方法记录

    目录 一.node.js安装以及环境配置 1.下载vue.js 2.安装node.js 3.检查node程序是否安装成功 4.更改默认路径 5.添加环境变量 5.测试安装是否成功 二.安装vue-cli脚手架 1.检查node环境是否安装好 2.更改淘宝镜像下定制的cnpm(gzip 压缩支持) 命令行工具代替默认的npm 3.开始安装vue-cli 4.生成项目 5.打包上线 总结 一.node.js安装以及环境配置 1.下载vue.js 下载地址: https://nodejs.org/en

  • Nginx防御DDOS攻击的配置方法教程

    前言 Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用. 其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网站服务器中表现较好. 防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈.DDOS的 特点是分布式,针对带宽和服务攻击,也就是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量.对于七层的应用攻击,我们还 是可以做一些配置

  • Hibernate映射文件id的generator配置方法

    可选的<generator>子元素是 一个Java类的名称,用来生成该持久化类实例的唯一标识符.如果这个生成器实例需要某些配置值或者初始化参数,可以使用<param>元素来传递这些参数. 所有的生成器都实现了org.hibernate.id.IdentifierGenerator接口.这是一个非常简单的接口:某些应用程序可以选择提供他们自己特定的实现.当然,Hibernate提供了很多内置的实现. 下面是一些内置生成器的快捷名字: increment(递增) 用于为long, sh

  • JS实现百度网盘任意文件强制下载功能

    代码: //get file list data var data=require("system-core:context/context.js").instanceForSystem.getList().listView.listsData; //calculate sign function base64Encode(r){var t,e,a,c,n,o,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012

  • mysql 8.0.22.0 下载安装配置方法图文教程

    mysql 8.0.22 下载安装配置方法,供大家参考,具体内容如下 1.进入MySQL官网下载,或直接点击下载  双击直接安装,一直默认安装 两次输入密码,要复杂点 下次可以在这里打开 精彩专题分享: mysql不同版本安装教程 mysql5.7各版本安装教程 mysql5.6各版本安装教程 mysql8.0各版本安装教程 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 通过Nginx服务器获取大文件MD5值的配置方法

    HTTP协议新增了Content-MD5 HTTP头,但是nginx并不支持这个功能,而且官方也明确表示不会增加这项功能,为什么呢?因为每次请求都需要读取整个文件来计算MD5值,以性能著称的nginx绝对不愿意干出违背软件宗旨的事情.但是有些应用中,需要验证文件的正确性,有些人通过下载当前文件,然后计算MD5值来比对当前文件是否正确.不仅仅浪费带宽资源也浪费了大把的时间.有需求就有解决方案,网友开发了file-md5模块. 1. 下载模块file-md5 # cd /usr/local/src

  • 实现nginx&php服务器配置的非主流配置方法

    实现php&nginx服务器配置的非主流配置方法 这种方法并非以前所流行的apache 加 php_module 的方式运行,我是采用nginx 作为web服务器,以fastcgi的方式运行php. linux下编译: nginx我还是习惯选择8.54的版本,它的编译依赖以下几个软件包,解压这些源码包,在configure中设置好这些源码的路径,nginx在编译的时候会自己将他们编译进去的: pcre: 主要用于rewrite等模块 zlib: 这个不用说了 openssl: 如果你还知道htt

  • Nginx单向认证的安装配置方法

    首先系统要已经安装了openssl,以下是使用openssl安装配置单向认证的执行步骤与脚本: 复制代码 代码如下: #-------------------------------------------------------- # 单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 # 单项SSL连接,也就是只是客户端验证服务器证书 #-------------------------------------------------------- #创建存储路径 rm -rf /u

随机推荐