2010-04-23 47 views

回答

48

如果您有足夠新的捲曲(版本7.20.0或更高版本),-J/--remote-header-name是您想要的。

您可以使用-J和-O一起使用,它使curl使用URL中的文件名部分作爲命名輸出文件的主要方式,然後如果響應中存在Content-disposition:標頭,curl將會改用這個名字。

+6

心目中,你應該使用-J/- 結合遠程頭名-O/- 遠程名稱選項,否則它不起作用。 – sepehr 2013-11-14 17:21:54

+1

'-OJ'是一個殺手選項,很容易記住:) – colminator 2018-03-08 21:23:52

-3

您可以嘗試-o-O選項。

+2

-o要求一個文件名保存到 -O保存到磁盤dl.pl?ID=2 – John 2010-04-23 13:12:04

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

如果服務器使用重定向使用這些:

--location-trusted 
--max-redirs 10 
+0

請小心'--location-trusted',因爲它會將HTTP auth信息轉發到重定向,即使跨不同的域。 '--location'似乎是一個更安全的選擇。 – jchook 2016-03-19 19:29:01

13

我發現,捲曲-OJ是給我分段錯誤:試圖同時下載多個URL時11錯誤。

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

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