默认情况下通过Nginx服务器来访问pdf等文件,会在浏览器上直接打开.如果想要实现下载文件的效果,则需要在nginx服务端做一些设置

一.配置下载功能

server {
listen 80;
server_name xxx.xxx.xxx;

location ^~ /download/ {
root /download/center/;

sendfile on; # 开启高效文件传输模式
autoindex on; # 开启目录文件列表
autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes
autoindex_localtime on; # 显示的文件时间为文件的服务器时间
charset utf-8,gbk; # 避免中文乱码

# 开启下载功能
if($request_filename ~* ^.*?\.(txt|doc|pdf|zip|docx|xlsx|gif|jpg|png)$) {
add_header Content-Disposition attachment;
add_header Content-Type application/octet-stream;
}

}
}

二.配置预览及下载功能

server {
listen 80;
server_name xxx.xxx.xxx;

location ^~ /download/ {
root /download/center/;

sendfile on; # 开启高效文件传输模式
autoindex on; # 开启目录文件列表
autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes
autoindex_localtime on; # 显示的文件时间为文件的服务器时间
charset utf-8,gbk; # 避免中文乱码

# 同时开启预览及下载功能
if($request_filename ~* ^.*?\.(txt|doc|pdf|zip|docx|xlsx|gif|jpg|png)$) {
add_header Content-Disposition: 'p_w_upload;';
}

}
}