<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Content-Disposition on HiDa</title><link>https://www.0niu.cn/tags/content-disposition/</link><description>Recent content in Content-Disposition on HiDa</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 22 Jan 2026 14:17:37 +0800</lastBuildDate><atom:link href="https://www.0niu.cn/tags/content-disposition/index.xml" rel="self" type="application/rss+xml"/><item><title>wget用Content-Disposition字段值为文件名</title><link>https://www.0niu.cn/posts/wget-content-disposition/</link><pubDate>Thu, 22 Jan 2026 14:17:37 +0800</pubDate><guid>https://www.0niu.cn/posts/wget-content-disposition/</guid><description>&lt;h2 id="基本用法">基本用法&lt;/h2>
&lt;p>wget可以通过&lt;code>--content-disposition&lt;/code>参数使用HTTP响应头中的&lt;code>Content-Disposition&lt;/code>字段来设置下载文件的文件名。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget &lt;span style="color:#f92672">[&lt;/span>--no-check-certificate&lt;span style="color:#f92672">]&lt;/span> --content-disposition &lt;span style="color:#e6db74">&amp;#39;url&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="详细说明">详细说明&lt;/h2>
&lt;h3 id="content-disposition头字段">Content-Disposition头字段&lt;/h3>
&lt;p>&lt;code>Content-Disposition&lt;/code>是HTTP响应头中的一个字段，用于指示如何处理响应内容。当服务器希望浏览器下载文件而不是显示时，会使用这个字段。&lt;/p>
&lt;p>常见的格式：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Content-Disposition: attachment; filename=&amp;#34;example.pdf&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: attachment; filename*=UTF-8&amp;#39;&amp;#39;%E4%BE%8B%E5%AD%90.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="参数说明">参数说明&lt;/h3>
&lt;ul>
&lt;li>&lt;code>--content-disposition&lt;/code>: 启用对Content-Disposition头的支持&lt;/li>
&lt;li>&lt;code>--no-check-certificate&lt;/code>: 跳过SSL证书验证（可选，用于自签名证书）&lt;/li>
&lt;/ul>
&lt;h2 id="实际应用场景">实际应用场景&lt;/h2>
&lt;h3 id="1-动态文件下载">1. 动态文件下载&lt;/h3>
&lt;p>当下载链接指向动态生成的文件时，服务器会通过Content-Disposition指定正确的文件名：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/download.php?id=123&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-中文文件名处理">2. 中文文件名处理&lt;/h3>
&lt;p>对于包含中文字符的文件名，Content-Disposition可能会使用URL编码：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/中文文件.pdf&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>wget会自动处理URL编码的文件名。&lt;/p>
&lt;h3 id="3-批量下载">3. 批量下载&lt;/h3>
&lt;p>结合其他参数使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 后台下载，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -b --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/file.zip&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 限制下载速度，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget --limit-rate&lt;span style="color:#f92672">=&lt;/span>100k --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/large-file.iso&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description><content>&lt;h2 id="基本用法">基本用法&lt;/h2>
&lt;p>wget可以通过&lt;code>--content-disposition&lt;/code>参数使用HTTP响应头中的&lt;code>Content-Disposition&lt;/code>字段来设置下载文件的文件名。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget &lt;span style="color:#f92672">[&lt;/span>--no-check-certificate&lt;span style="color:#f92672">]&lt;/span> --content-disposition &lt;span style="color:#e6db74">&amp;#39;url&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="详细说明">详细说明&lt;/h2>
&lt;h3 id="content-disposition头字段">Content-Disposition头字段&lt;/h3>
&lt;p>&lt;code>Content-Disposition&lt;/code>是HTTP响应头中的一个字段，用于指示如何处理响应内容。当服务器希望浏览器下载文件而不是显示时，会使用这个字段。&lt;/p>
&lt;p>常见的格式：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Content-Disposition: attachment; filename=&amp;#34;example.pdf&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: attachment; filename*=UTF-8&amp;#39;&amp;#39;%E4%BE%8B%E5%AD%90.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="参数说明">参数说明&lt;/h3>
&lt;ul>
&lt;li>&lt;code>--content-disposition&lt;/code>: 启用对Content-Disposition头的支持&lt;/li>
&lt;li>&lt;code>--no-check-certificate&lt;/code>: 跳过SSL证书验证（可选，用于自签名证书）&lt;/li>
&lt;/ul>
&lt;h2 id="实际应用场景">实际应用场景&lt;/h2>
&lt;h3 id="1-动态文件下载">1. 动态文件下载&lt;/h3>
&lt;p>当下载链接指向动态生成的文件时，服务器会通过Content-Disposition指定正确的文件名：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/download.php?id=123&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-中文文件名处理">2. 中文文件名处理&lt;/h3>
&lt;p>对于包含中文字符的文件名，Content-Disposition可能会使用URL编码：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/中文文件.pdf&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>wget会自动处理URL编码的文件名。&lt;/p>
&lt;h3 id="3-批量下载">3. 批量下载&lt;/h3>
&lt;p>结合其他参数使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 后台下载，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -b --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/file.zip&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 限制下载速度，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget --limit-rate&lt;span style="color:#f92672">=&lt;/span>100k --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/large-file.iso&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="高级用法">高级用法&lt;/h2>
&lt;h3 id="结合其他wget参数">结合其他wget参数&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 断点续传，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -c --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/big-file.tar.gz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 递归下载，使用Content-Disposition文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -r --content-disposition &lt;span style="color:#e6db74">&amp;#34;https://example.com/files/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="脚本中的应用">脚本中的应用&lt;/h3>
&lt;p>在shell脚本中批量处理下载任务：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>URLS&lt;span style="color:#f92672">=(&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;https://example.com/file1.pdf&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;https://example.com/file2.doc&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;https://example.com/数据.xlsx&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">for&lt;/span> url in &lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>URLS[@]&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>; &lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;正在下载: &lt;/span>$url&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> wget --content-disposition &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$url&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="注意事项">注意事项&lt;/h2>
&lt;h3 id="1-安全性考虑">1. 安全性考虑&lt;/h3>
&lt;ul>
&lt;li>谨慎使用&lt;code>--no-check-certificate&lt;/code>参数，可能存在安全风险&lt;/li>
&lt;li>建议在可信网络环境中使用&lt;/li>
&lt;/ul>
&lt;h3 id="2-文件名冲突">2. 文件名冲突&lt;/h3>
&lt;p>如果多个URL返回相同的文件名，wget会自动添加数字后缀：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>document.pdf
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>document(1).pdf
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>document(2).pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="3-编码问题">3. 编码问题&lt;/h3>
&lt;ul>
&lt;li>确保终端支持UTF-8编码以正确显示中文文件名&lt;/li>
&lt;li>在某些系统上可能需要额外的配置&lt;/li>
&lt;/ul>
&lt;h3 id="4-服务器支持">4. 服务器支持&lt;/h3>
&lt;p>并非所有服务器都正确设置Content-Disposition头，某些情况下可能需要手动指定文件名：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 如果Content-Disposition不可用，使用-O参数指定文件名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -O custom-name.pdf &lt;span style="color:#e6db74">&amp;#34;https://example.com/download&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="故障排除">故障排除&lt;/h2>
&lt;h3 id="常见问题">常见问题&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>文件名显示乱码&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 设置locale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export LANG&lt;span style="color:#f92672">=&lt;/span>zh_CN.UTF-8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>下载失败&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 检查HTTP头&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>curl -I &lt;span style="color:#e6db74">&amp;#34;https://example.com/download&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>文件名被截断&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 检查服务器返回的完整Content-Disposition头&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget --spider --server-response &lt;span style="color:#e6db74">&amp;#34;https://example.com/download&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h2 id="替代方案">替代方案&lt;/h2>
&lt;p>如果wget不可用，也可以使用其他工具：&lt;/p>
&lt;h3 id="使用curl">使用curl&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>curl -J -O &lt;span style="color:#e6db74">&amp;#34;https://example.com/download&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="使用python">使用Python&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> requests
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> os
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>url &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;https://example.com/download&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>response &lt;span style="color:#f92672">=&lt;/span> requests&lt;span style="color:#f92672">.&lt;/span>get(url, headers&lt;span style="color:#f92672">=&lt;/span>{&lt;span style="color:#e6db74">&amp;#39;User-Agent&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;Mozilla/5.0&amp;#39;&lt;/span>})
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>filename &lt;span style="color:#f92672">=&lt;/span> response&lt;span style="color:#f92672">.&lt;/span>headers&lt;span style="color:#f92672">.&lt;/span>get(&lt;span style="color:#e6db74">&amp;#39;content-disposition&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>)&lt;span style="color:#f92672">.&lt;/span>split(&lt;span style="color:#e6db74">&amp;#39;filename=&amp;#39;&lt;/span>)[&lt;span style="color:#f92672">-&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>]&lt;span style="color:#f92672">.&lt;/span>strip(&lt;span style="color:#e6db74">&amp;#39;&amp;#34;&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">with&lt;/span> open(filename, &lt;span style="color:#e6db74">&amp;#39;wb&amp;#39;&lt;/span>) &lt;span style="color:#66d9ef">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#f92672">.&lt;/span>write(response&lt;span style="color:#f92672">.&lt;/span>content)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></content></item></channel></rss>