Как я могу пропустить заголовки в Kohana 3 и просто получить необработанный вывод из маршрута? - PullRequest
1 голос
/ 27 апреля 2010

У меня есть метод, который возвращает файл PDF, используя DOMPDF . Он отправляет все нужные заголовки. Он генерируется на лету (нигде не хранится на сервере).

Теперь я должен прикрепить этот PDF-файл к исходящей электронной почте. Я сделал это в Kohana 3

        $routeUrl = Route::get('secure_view_pdf')->uri(array('id' => $id));

        $response = Request::factory($routeUrl)->execute();


        $tempFile = DOCROOT . 'tmp/pdf-' . $id . '.pdf';

        file_put_contents($tempFile, $response); 


        $swift = email::connect();
        $message = Swift_Message::newInstance();


        $message->setSubject('My Subject')
              ->setFrom(array('info@example.com.au' => 'Example'))
              ->setTo(array($clientEmail => html::chars($clientName)))
              ->setBody($body) 
              ->addPart($body, 'text/html') 
              ->attach(Swift_Attachment::fromPath($tempFile));

        $swift->send($message);

Запрашиваемый маршрут просто отправляет заголовки для загрузки и потоковую передачу PDF, чтобы конечный пользователь мог загрузить его. Также используется библиотека Swift Mailer .

За исключением случаев, когда я запускаю этот запрос в браузере, он запрашивает загрузку файла. Я хочу получить вывод в $response и игнорировать заголовки загрузки Content-Disposition: attachment; filename="file #1.pdf".

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

Или я должен изменить автоматическое создание PDF-файлов на файл, а затем просто указать этот файл с помощью Swift?

Большое спасибо

1 Ответ

1 голос
/ 28 апреля 2010
  $response = Request::factory($routeUrl)->execute()->response;
...