Как сохранить файл, используя имя заголовка ответа с помощью cURL - PullRequest
46 голосов
/ 23 апреля 2010

Этот вопрос относится к версии командной строки cURL.

Я пытаюсь загрузить файл из сценария cgi.

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

При использовании браузера имя файла выглядит как 'remotefilename.gz' cURL хочет сохранить файл как 'dl.pl?ID=2'

Как получить cURL для сохранения в файл с именем файла из заголовка ответа ??

Ответы [ 4 ]

73 голосов
/ 24 апреля 2010

если у вас достаточно новый curl (версия 7.20.0 или новее), -J / - remote-header-name - это то, что вам нужно.

Вы используете -J в сочетании с -O , что заставляет curl использовать часть имени файла из URL в качестве основного способа присвоения имени выходному файлу, а затем, если есть Content-disposition: header в ответе curl вместо этого будет использовать это имя.

16 голосов
/ 08 октября 2011
curl http://example.com/dl.php?file=3123123 -O -J

если сервер использует перенаправление, используйте эти:

--location-trusted
--max-redirs 10
15 голосов
/ 25 октября 2011

Я обнаружил, что curl -OJ вызывал ошибку сегментации: ошибка 11 при попытке загрузить несколько URL-адресов одновременно.

Мое решение заключалось в использовании wget.Последняя версия поддерживает HTTP-заголовки Content-Disposition, которые часто содержат информацию об имени файла.

wget --content-disposition http://example.com/download/url
0 голосов
/ 23 апреля 2010

вы можете попробовать вариант -o или -O.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...