如何使用带有cURL的响应头文件名保存文件

时间:2010-04-23 12:46:32

标签: curl

此问题与cURL的命令行版本有关。

我正在尝试从cgi脚本下载文件。

http://someserver/perl/dl.pl?ID=2

使用浏览器,文件名显示为'remotefilename.gz' cURL希望将文件另存为“dl.pl?ID=2”

如何将cURL保存到具有响应头文件名的文件?

4 个答案:

答案 0 :(得分:68)

如果你有足够新的卷曲(版本7.20.0或更高版本),-J/--remote-header-name就是你想要的。

您将-J与-O结合使用,这使得curl使用URL中的文件名部分作为命名输出文件的主要方式,然后在响应中使用Content-disposition:标头,curl将使用该名称。

答案 1 :(得分:16)

curl http://example.com/dl.php?file=3123123 -O -J

如果服务器使用重定向,请使用以下命令:

--location-trusted
--max-redirs 10

答案 2 :(得分:15)

我发现curl -OJ给了我分段错误:尝试一次下载多个网址时出现11错误。

我的解决方案是使用wget。最新版本支持HTTP Content-Disposition标头,通常包含文件名信息。

wget --content-disposition http://example.com/download/url

答案 3 :(得分:-3)

您可以尝试-o-O选项。