在我的项目中,采用的是fastdfs+nginx上传、下载文件。
想要下载文件,只需在nginx中添加 add_header Content-Disposition "attachment;"
// 所有文件都不打开
location / {
add_header Content-Disposition "attachment;";
}
fastDFS上传的文件都不会用原来的名字,所以下载的时候需要改名,可通过url中添加参数,然后在nginx中根据参数来改名。
例:attname=XXX分析报告.xlsx
此时我们的文件url为:http://ip:90/fastdfs文件地址?attname=XXX分析报告.xlsx
nginx需要配置成
location / {
if ($request_uri ~* ^.*\?n=([^&]+)$) {
add_header Content-Disposition "filename*=utf-8'zh_cn'$arg_attname";
}
}
utf8时有些浏览器会自动把文件改成urlencode的格式,attachment&filename一起配置
location / {
if ($request_uri ~* ^.*\?n=([^&]+)$) {
add_header Content-Disposition "attachment;filename*=$arg_attname";
}
}