FastDFS使用之修改下载文件名称

解决方法

通过在项目中多次尝试,找到一种较简单的实现方法,实现过程如下:

一. 应用系统在上传文件到FastDFS成功时将原始文件名和“文件索引(FID)”保存下来(例如:保存到数据库)。

二. 用户点击下载的时用Nginx的域名和FID拼出url,然后在url后面增加一个参数,指定原始文件名。例如:http://121.14.161.48:9030/group2/M00/00/89/eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk?attname=filename.apk

三. 在Nginx上进行如下配置,这样Nginx就会截获url中的参数attname,在Http响应头里面加上字段 Content-Disposition “attachment;filename=$arg_attname”。

 

location /group2/M00 { root /data/store/data; if ($arg_attname ~ "^(.*).apk") { add_header Content-Disposition "attachment;filename=$arg_attname"; } ngx_fastdfs_module; }

 

 

-----------------------------------------------------------------------

 

通过nginx请求文件时,url后面带了filename参数设置返回的文件名。

但是当文件名过长时报错:

 

ERROR - file: /usr/local/fastdfs-nginx-module/src/common.c, line: 614, uri length: 276 is too long, >= 256

修改该文件中对文字长度的限制

 

 

-------------

 

nginx开启预览

autoindex on;

 

gitlab 的守护线程 重启nginx命令

gitlab-ctl restart nginx

你可能感兴趣的:(FastDFS使用之修改下载文件名称)