我有一个使用DOMPDF返回 PDF 文件的方法。它发送所有正确的标题。它是动态生成的(不存储在任何地方的服务器上)。
我现在必须将此 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 指向该文件?
非常感谢