相关配置参数
autoindex on; #开启整个目录浏览下载
autoindex_localtime on; #显示的时间为文件服务器的时间
autoindex_exact_size off; #显示文件的粗略大小,即1024B会自动转换为1KB,可读性更强
具体配置
location /down {
alias D:\linux; #展示的目录
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|conf)$){
add_header Content-Disposition 'attachment;';
}
autoindex on; #开启整个目录浏览下载
autoindex_localtime on; #显示的时间为文件服务器时间
autoindex_exact_size off; #显示文件的粗略大小
}
这里有两点需要说明:
一、展示目录选择使用alias而不是root
原因是alias默认不会拼接location后面的/down,而root会进行拼接,即我们若写为root D:\linux;实际展示的目录是D:\linux\down,因此这里我们选择alias更为合适。
二、添加了对$request_filename内置变量的if判断
目的是为了让txt等文件进行下载而不是浏览,如果不做这个配置,点击目录下的txt文件,大部分浏览器默认是直接浏览的。这里通过添加响应头来控制。
Content-Disposition属性有两种类型:inline 和 attachment
inline :将文件内容直接显示在页面
attachment:弹出对话框让用户下载
添加响应头后效果如图所示。
此时再点击txt文件就会进行下载了。
配置完成
下载站点的效果图如下所示: