Nginx配置下载附件让浏览器提示用户是否保存
测试环境
nginx-1.10.0
问题描述:
前端页面,IE11浏览器下请求下载附件模板,针对xlsx格式文件,点击后会在浏览器中直接打开,并显示乱码。
解决方案:
修改Nginx配置,增加如下带背景色内容(添加http响应头)
add_header Content-Disposition: "attachment;
或者如下
add_header Content-Disposition: "attachment; filename=文件名";
说明:filename为下载的附件设置新的名称。
例:
server {
……(略)
location ~* \.(xlsx)$ {
root /data/dir/;
if ($request_filename ~* /*\.xlsx$){
add_header Content-Disposition: "attachment; filename=$1";
}
}
}
说明:
1、$1 表示正则表达式匹配到的第一个参数值。
2、配置解读
如果请求匹配到 *.xlsx文件(不分大小写),则执行{ }配置块的内容。
如果请求资源文件路径$request_filename匹配到了*.xlsx文件(不分大小写),则添加http响应头。
实现效果