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类型,提示用户把文件保存到本地。
相关推荐
-
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
随机推荐
- AngularJS实现表单验证
- js正则表达式注册页面表单验证
- 创建、调用JavaScript对象的方法集锦
- asp.net下cookies操作完美代码
- php数据访问之增删改查操作
- jspsmart文件上传与邮件发送的实例
- JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
- 用vbs实现重新启动 Internet Explorer
- BootStrap glyphicon图标无法显示的解决方法
- jQuery实现选项卡功能(两种方法)
- Javascript实例教程(19) 使用HoTMetal(3)
- Linux下的软件安装
- WordPress开发中的get_post_custom()函数使用解析
- Java IO读取文件的实例详解
- div浮层,滚动条移动,位置保持不变的4种方法汇总
- javascript 按键事件(兼容各浏览器)
- Thinkphp框架开发移动端接口(2)
- 认识并使用PHP超级全局变量
- 一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用
- vue项目如何刷新当前页面的方法