У меня есть метод, который возвращает файл 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?
Большое спасибо