DOMPDFを使用して PDF ファイルを返すメソッドがあります。すべての適切なヘッダーを送信します。オンザフライで生成されます (サーバーのどこにも保存されません)。
この PDF を送信メールに添付する必要があります。私はコハナ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 でそのファイルを指定する必要がありますか?
どうもありがとう