как сохранить файл загрузки локально из формы asp.net с помощью goutte

Я пытаюсь создать PHP-скрипт, используя goutte для

  • Авторизоваться
  • Нажмите кнопку отправки.
  • Сохраните CSV-файл локально, который загружается (если это делается вручную).

Это приложение (http://portal.agrinet.ie/) создано на основе asp.net.

Я могу успешно войти в систему и нажать кнопку отправки в форме через код, но в настоящее время он возвращает только этот результат:

Symfony\Component\DomCrawler\Crawler Object
(
    [uri:protected] => http://portal.agrinet.ie/Exports.aspx
    [defaultNamespacePrefix:Symfony\Component\DomCrawler\Crawler:private] => default
    [namespaces:Symfony\Component\DomCrawler\Crawler:private] => Array
        (
        )

    [baseHref:Symfony\Component\DomCrawler\Crawler:private] => http://portal.agrinet.ie/Exports.aspx
    [document:Symfony\Component\DomCrawler\Crawler:private] => 
    [nodes:Symfony\Component\DomCrawler\Crawler:private] => Array
        (
        )

    [isHtml:Symfony\Component\DomCrawler\Crawler:private] => 1
)

Это php-код:

require 'vendor/autoload.php';
use Goutte\Client;

$client = new Client();
echo '<pre>';
$crawler = $client->request('GET', 'http://portal.agrinet.ie/Default.aspx');
$form = $crawler->selectButton('ctl00$MainContent$btnLogin')->form();

$crawler = $client->submit($form, array('ctl00$MainContent$txtUsername' => 'XXXX', 'ctl00$MainContent$txtPassword' => 'XXXXX'));
  
$id = $crawler->filter("#ctl00_mnuMainn26 a")->link();
$exportPage = $client->click($id);
$downloadBut = $exportPage->selectButton('ctl00$MainContent$btnDownload')->form();
$file = $client->submit($downloadBut);
print_r($file);

Мой вопрос заключается в том, как я могу сохранить файл локально после нажатия кнопки отправки с помощью goutte.


person adnanoswd    schedule 30.08.2017    source источник


Ответы (1)


Решение:

$form = $exportPage->selectButton('ctl00$MainContent$btnDownload')->form();

$ клиент-> отправить ($ форма);

print_r($client->getResponse()->getContent());

getContent() дал мне все содержимое файла, и я сохранил это содержимое в другом файле, который я уже создал на своем локальном компьютере.

person adnanoswd    schedule 06.09.2017