首页 文章

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

提问于
浏览
36

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

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

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

使用浏览器,文件名为'remotefilename.gz'cURL想要将文件保存为'dl.pl?ID=2'

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

4 回答

  • -3

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

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

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

    你可以试试 -o-O 选项 .

  • 14

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

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

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

    如果服务器使用重定向使用这些:

    --location-trusted
    --max-redirs 10
    

相关问题