За последние 24 часа нас посетили 53864 программиста и 1712 роботов. Сейчас ищут 913 программистов ...

Скачать pdf отдаваемый по POST запросу

Тема в разделе "PHP для новичков", создана пользователем baxye, 11 фев 2016.

  1. baxye

    baxye Новичок

    С нами с:
    6 окт 2015
    Сообщения:
    12
    Симпатии:
    0
    Есть адрес сервера, при отправке на который POST запроса в XML формате, он должен сформировать PDF документ.
    Вопрос - как получить этот pdf?
    Запрос отправляю через cURL
    Код (PHP):
    1.  if( $curl = curl_init() ) {
    2.         curl_setopt($curl, CURLOPT_URL, 'http://site.com/print.php');
    3.         curl_setopt($curl, CURLOPT_POST, true);
    4.     curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    5.         curl_setopt($curl, CURLOPT_POSTFIELDS, 'xml_request='.$xml);
    6.         curl_exec($curl);
    7.         curl_close($curl);
    8.     } 
    но на выходе тишина.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. $reply = curl_exec($ch); 
     
  3. baxye

    baxye Новичок

    С нами с:
    6 окт 2015
    Сообщения:
    12
    Симпатии:
    0
    ага, в $reply мне закачался код этого pdf в нечитаемом формате, а как его теперь скачать? Это же уже не файл, а строка выходит?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну
    Код (PHP):
    1. file_put_contents('a.pdf', $reply); 
    Только это тебе зачем? ты может его отдашь человеку сразу тогда уж?
     
  5. baxye

    baxye Новичок

    С нами с:
    6 окт 2015
    Сообщения:
    12
    Симпатии:
    0
    да, имелось ввиду конечно предложение человеку скачать на комп, а не мне на сервер :)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда заголовки что это файл, название придумываешь, и echo $reply; exit;
     
  7. baxye

    baxye Новичок

    С нами с:
    6 окт 2015
    Сообщения:
    12
    Симпатии:
    0
    отлично, спасибо, всё работает.
    может кому пригодится:
    Код (PHP):
    1.  if( $curl = curl_init() ) {
    2.         curl_setopt($curl, CURLOPT_URL, 'http://server.ru/print.php');
    3.         curl_setopt($curl, CURLOPT_POST, true);
    4.     curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    5.         curl_setopt($curl, CURLOPT_POSTFIELDS, 'xml_request='.$xml);
    6.         $reply = curl_exec($curl);
    7.         curl_close($curl);
    8.     }
    9. header("Content-type: application/pdf; charset=utf-8");
    10. header("Content-Disposition: attachment; filename=downloaded.pdf");
    11. echo $reply;
    12. exit; 
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    круто. А ты сразу сделай echo curl_exec($curl); чтобы сэкономить память.