Wget

wget用Content-Disposition字段值为文件名

基本用法

wget可以通过--content-disposition参数使用HTTP响应头中的Content-Disposition字段来设置下载文件的文件名。

wget [--no-check-certificate] --content-disposition 'url'

详细说明

Content-Disposition头字段

Content-Disposition是HTTP响应头中的一个字段,用于指示如何处理响应内容。当服务器希望浏览器下载文件而不是显示时,会使用这个字段。

常见的格式:

Content-Disposition: attachment; filename="example.pdf"
Content-Disposition: attachment; filename*=UTF-8''%E4%BE%8B%E5%AD%90.pdf

参数说明

  • --content-disposition: 启用对Content-Disposition头的支持
  • --no-check-certificate: 跳过SSL证书验证(可选,用于自签名证书)

实际应用场景

1. 动态文件下载

当下载链接指向动态生成的文件时,服务器会通过Content-Disposition指定正确的文件名:

wget --content-disposition "https://example.com/download.php?id=123"

2. 中文文件名处理

对于包含中文字符的文件名,Content-Disposition可能会使用URL编码:

wget --content-disposition "https://example.com/中文文件.pdf"

wget会自动处理URL编码的文件名。

3. 批量下载

结合其他参数使用:

# 后台下载,使用Content-Disposition文件名
wget -b --content-disposition "https://example.com/file.zip"

# 限制下载速度,使用Content-Disposition文件名
wget --limit-rate=100k --content-disposition "https://example.com/large-file.iso"