当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何使用带有cURL的响应头文件名保存文件》经验,为你挑选了3个好方法。

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

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

HTTP://someserver/perl/dl.pl ID = 2

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

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



1> Daniel Stenb..:

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

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


`-OJ`是一个杀手选项,这很容易记住:)
请记住,您应该将-J/ - remote-header-name与-O/ - remote-name选项一起使用,否则它不起作用.
考虑到@jchook对另一个答案的评论,我觉得记住`-JLO`助记符看起来很漂亮很方便:)

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

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

--location-trusted
--max-redirs 10



3> jchook..:

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

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

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

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有