2010-04-23 18 views

risposta

48

se si dispone di una nuova arricciatura sufficiente (versione 7.20.0 o successiva), -J/--remote-header-name è ciò che si desidera.

Si utilizza -J in combinazione con -O, che rende il ricciolo utilizzare la parte del nome file dall'URL come metodo principale per denominare il file di output e quindi se c'è un'intestazione Content-disposition: nella risposta, curl usa quel nome invece.

+6

avete in mente che si dovrebbe usare/-J --header-nome remoto in combinazione con -O/- opzione nome remoto altrimenti non funziona. – sepehr

+1

'-OJ' è un'opzione killer, facile da ricordare :) – colminator

-3

puoi provare l'opzione -o o -O.

+2

-o chiede un nome di file per salvare -O salva su disco come dl.pl?ID=2 – John

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

se il server utilizza il reindirizzamento utilizzare questi:

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

Fai attenzione con' --location-trusted' dato che inoltrerà le informazioni di autenticazione HTTP ai reindirizzamenti, anche su domini diversi. '--location' sembra un'opzione più sicura. – jchook

13

ho scoperto che ricciolo -OJ stava dando me Segmentation Fault: 11 errori quando si tenta di scaricare più URL in una sola volta.

La mia soluzione era usare wget. L'ultima versione supporta le intestazioni HTTP Content-Disposition, che spesso contengono informazioni sui nomi dei file.

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