Nginx下载文件名进行重命名

首先,在上传文件的服务中为了保证上传的文件不会有文件名冲突的情况,一般会在服务器进行文件名重命名为乱码

但是下载的时候为了效率问题不会直接走tomcat而是走Nginx进行,那怎么让下载的时候拿到原始文件名呢?

location ~* .*\.(rar|zip|doc|docx|ppt|pptx|xls)$ {
                        if ($request_uri ~* ^.*\/(.*)\.(\w+)(\?filename=([^&]+))$) {
                           add_header Content-Type "application/octetstream";
                           add_header Content-Disposition "attachment;filename*=utf-8'zh_cn'$arg_filename";
                        }
                        expires 30d;
}

在Nginx配置中添加以上配置,然后在文件下载链接加上?filename=XXX就行了。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×