2017-02-20 11 views
1

Извините заранее, если то, о чем я прошу, очевиден или ответили уже где-то в другом месте. Я пытался следить за различными гидами и сейчас борется пару часов, но никуда не ушел. Возможно ты можешь помочь мне?Загрузить файл с curl, переадресовать и загрузить последующую веб-страницу

Я хотел бы загрузить файл на веб-страницу с помощью PHP-формы (используя POST), а затем выполнить перенаправление веб-страниц и загрузить последующую веб-страницу/файл HTML. Насколько я понимаю, cURL предполагается использовать для такого рода работ (как вы можете видеть, я совершенно новичок в этом).

Вот тестовый файл, который я хотел бы загрузить: hiddenlink

Это веб-страницу с формой PHP, к которому я хотел бы загрузить тестовый файл: hiddenlink

Вы можете вручную загрузить тестовый файл в браузере. Затем веб-страница перенаправит вас на новую веб-страницу с большой таблицей. Затем этот файл веб-сайта/HTML можно сохранить вручную.

Я хотел бы воспроизвести этот подход в терминале, не используя браузер.

Это код, который я использую до сих пор:

curl -vL --form [email protected]_Upload.txt --form press=submit *hiddenlink* -o savedpage.html 

Идея заключается в том, чтобы загрузить тестовый файл, а затем следуйте редирект и сохранить новую страницу как savedpage.html. Это не работает. Можете ли вы дать мне какие-либо указания по этому поводу? Опять же, мои самые глубокие извинения, но это первый раз, когда я использую cURL.

ответ

1

Основная проблема, которую я вижу, заключается в том, что вы отправляете на неправильную страницу для загрузки.

Сама форма, расположенная по адресу /upload/, является тем, что вы публикуете, но если вы посмотрите на HTML формы, действие будет upload.php. Здесь вы должны направлять свой запрос. Примечание: curl не читает HTML, поэтому он не может понять, что, отправляя на первый URL-адрес, вы хотите, чтобы он затем отправил форму, определенную в HTML; вы должны понять это и сделать это сами.

curl -v -F [email protected] \ 
-F submit='Upload File' \ 
-o savedpage.html \ 
http://www.example.com/upload/upload.php 

-L не является необходимым, поскольку он не кажется, что сайт посылает любые Location заголовки; тем не менее, это не больно.

+0

Спасибо вам большое! В самом деле, это трюк - я уверен, что я пробовал обе ссылки на самом деле, но, возможно, с другой комбинацией скрипта! Большое спасибо! – user6475