nginx中文件下载指定保存文件名的配置方法
- 软件编程
- 2026-01-11 17:40:13
一般在我们上传完资源文件之后,为了避免文件名冲突,会将文件名改成毫无意义的一段字符。这个字符,可能是MD5产生的,或者是其他方式产生的字符串。这时候,下载的时候,默认保存的文件名会是这段毫无意义的文件名(图1)。
其实,nginx是支持下载时重命名的,让文件名更加友好。
nginx也很容易配置:只要加入以下几行即可:
复制代码 代码如下:location ~* .*\.(doc|txt|jar|zip|apk)(\?.*)?$
{
if ($request_uri ~* ^.*\/(.*)\.(doc|txt|jar|zip|apk)(\?n=([^&]+))$) {
add_header Content-Disposition "attachment;filename=$arg_n.$2";
}
log_not_found off;
expires 30d;
break;
}
if那一行比较关键,这样配置,保证不传n参数的时候,就按原名字保存。不会出现空名字。
由于是以header形式指定,cdn会保存此头信息,内容分发时,也会是一样的表现。
apache读取不到get参数,因此配置不成功。不能应用到以apache作为文件服务器的情况,如果谁知道apache也可以配置,请告之,谢谢。
# 会将
# 上传
# 也会
# nginx
# 文件服务器
# 这段
# 或者是
# 不成功
# 为了避免
# 也很
# 毫无意义
# 告之
# 按原
# 谁知道
# 重命名
# 是一样的
# 不传
# 这时候
# 文件下载
# 几行
# expires
# Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
# 在Nginx中使用X-Sendfile头提升PHP文件下载的性能(针对大文件下载)
# nginx不支持apk ipa文件下载的设置方法
# Nginx限制IP并发数与下载速度的方法
# IIS、Apache、Nginx下用IE下载apk文件变成zip的解决办法
# 详解node.js 下载图片的 2 种方式
# angular.js+node.js实现下载图片处理详解
# 浅析Node.js实现HTTP文件下载
# Nginx配置txt、pdf、doc、xls等文件直接下载的方法
# 指定文件名
相关栏目:
【
教研文案 】
【
日常文案 】
【
AI模型 】
【
网络运营 】
【
营销推广 】
【
云计算 】
【
技术教程 】
【
软件编程 】
【
汉字学习 】
【
歌词歌曲 】
【
精选文章 】
相关推荐:
PHP SESSION跨页面传递失败解决方案
微信小程序实现点击导航标签滚动定位到对应位置
Spring定时服务QuartZ原理及代码案例
阿里云盘邀请码免费获取! Teambition网盘内测码速抢!(Teambition网盘评测)
c# 实现语音合成
python使用requests库爬取拉勾网招聘信息的实现
JAVA8之函数式编程Function接口用法
harbor修改配置文件后重启操作
Selenium关闭INFO:CONSOLE提示的解决
Linux下docker 容器退出bash的两种实现方法
C# 使用HttpClient上传文件并附带其他参数的步骤
python遍历路径破解表单的示例
Springcloud Eureka配置及集群代码实例
Java 内存溢出的原因和解决方法
MySql范围查找时索引不生效问题的原因分析
解决fastjson泛型转换报错的解决方法
一次mybatis连接查询遇到的坑实战记录
Python中BeautifulSoup通过查找Id获取元素信息
解决Android Studio4.1没有Gsonfomat插件,Plugin “GsonFormat” is incompatible的问题
Android Studio配置本地SDK的方法
C语言中求和、计算平均值、方差和标准差的实例
scrapy在python爬虫中搭建出错的解决方法
Java 实现对称加密算法
在Docker构建的容器中实现安装ping工具
MySQL触发器的使用场景及方法实例
使用BeautifulSoup4解析XML的方法小结
JavaScript实现移动小精灵的案例代码
在vue中使用inheritAttrs实现组件的扩展性介绍
python RSA加密的示例
解决python3输入的坑——input()
Android Studio下载、安装和配置+SDK+tools下载(无敌超级详细版本)
GO接收GET/POST参数及发送GET/POST请求的实例详解
Java中i++的一些问题总结
最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)
用Python实现童年贪吃蛇小游戏功能的实例代码
PHP笛卡尔积实现原理及代码实例
java初学者如何让编程学习起来更简单
Docker 容器生命周期 架构 以及和VM之间的差异详解
redis分布式锁的go-redis实现方法详解
详解vue 组件注册
Python numpy大矩阵运算内存不足如何解决
IDEA使用Docker插件远程部署项目到云服务器的方法步骤
解决Pymongo insert时会自动添加_id的问题
解决docker日志挂载的问题
使用TLS加密通讯远程连接Docker的示例详解
Java 实现常见的非对称加密算法
学习C语言对后期java有帮助吗
class类在python中获取金融数据的实例方法
微信小程序反编译的实现
浅析MysQL B-Tree 索引
本文转自网络,如有侵权请联系客服删除。
热门内容推荐
C#使用虚拟方法实现多态
- 2026-01-11
JavaScript原生对象之String对象的属性和方法详解
- 2026-01-11
js实现DOM走马灯特效的方法
- 2026-01-11
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- 2026-01-11
php实现微信公众平台账号自定义菜单类
- 2026-01-11
