Duplicata possible:
Comment enregistrer un fichier en utilisant le nom de fichier de l'en-tête de réponse avec cURL
J'ai besoin de télécharger plusieurs milliers d'images au format
http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=
Si vous collez ce lien dans un navigateur, il essaie de télécharger un fichier nommé 1.jp2
Je veux utiliser curl pour faire de même. Cependant, quand je cours
curl -I ' http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR= '
le nom de fichier est signalé comme 404.txt que vous pouvez télécharger et voir que c'est bien le fichier que je veux. Je ne peux pas utiliser l'option -O car le nom attribué au fichier n'est pas bon et j'ai des raisons techniques d'avoir besoin du nom réel utilisé sur le système.
Comment puis-je obtenir curl pour télécharger le même fichier que je n'ai aucun problème à récupérer dans mon navigateur? Merci.
La solution consiste à utiliser -O -J
-O, --remote-name Write output to a file named as the remote file -J, --remote-header-name Use the header-provided filename
Alors...
curl -O -J 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'
J'ai dû mettre à jour mon CURL. J'avais la v 7.19 qui ne supporte pas -J mais la 7.22 (qui est la dernière) le fait.