Как сохранить файл, используя имя файла заголовка ответа с помощью cURL
Этот вопрос относится к версии командной строки cURL.
Я пытаюсь загрузить файл из cgi script.
http://someserver/perl/dl.pl?ID=2
Используя браузер, имя файла появляется как 'remotefilename.gz'
cURL хочет сохранить файл как 'dl.pl?ID=2'
Как мне получить cURL для сохранения в файл с именем файла из заголовка ответа?
Ответы
Ответ 1
если у вас есть достаточно новый завиток (версия 7.20.0 или новее), - J/- remote-header-name - это то, что вы хотите.
Вы используете -J в сочетании с -O, что заставляет скручивание использовать часть имени файла из URL в качестве основного способа назвать выходной файл, а затем, если в ответе есть заголовок Content-disposition:, curl будет использовать это имя вместо этого.
Ответ 2
curl http://example.com/dl.php?file=3123123 -O -J
если сервер использует перенаправление, используйте следующие:
--location-trusted
--max-redirs 10
Ответ 3
Я обнаружил, что curl -OJ дает мне ошибку сегментации: 11 ошибка при попытке загрузить сразу несколько URL-адресов.
Моим решением было использовать wget. Последняя версия поддерживает заголовки HTTP Content-Disposition, которые часто содержат информацию о имени файла.
wget --content-disposition http://example.com/download/url
Ответ 4
вы можете попробовать опцию -o
или -o
.