我正在使用 dompdf 动态生成 pdf 文件并将它们附加到电子邮件和发送中。但在邮件中,我总是将附件作为 0 字节。我正在 cake 的 tmp 文件夹下创建文件,并且创建成功。我使用 cakephp 2.x 并使用 CakeEmail 发送邮件。dompdf 文件夹位于插件文件夹中。我已授予 lib/fonts 目录必要的权限。该文件在创建后不会立即作为附件发送。使用 dompdf 时是否会有任何类型的锁定/延迟,即 cakeemail 无法获取文件的内容(但文件存在)?
App::uses('CakePdf', 'CakePdf.Pdf');
$CakePdf = new CakePdf();
$orderDetails = array('1' => 'myproduct');
$CakePdf->viewVars(compact('orderDetails'));
$CakePdf->template('view_ticket_pdf', 'default');
$filename = TMP . $data['Billing']['order_id'] . '.pdf';
$pdf = $CakePdf->output();
$CakePdf->write( $filename);
$email = new CakeEmail('smtp');
$desc = $email->template('order_mail');
$email->emailFormat('html');
$email->from(array(ADMIN_EMAIL => 'Admin'));
$email->to('user@gmail.com');
$email->attachments(array($filename));
$email->subject('Your order');
$content = $email->send();
我收到 fread() 错误:CakeEmail 中的长度参数必须大于 0。如果我创建一个示例文本文件,而不是 pdf,它会附加并且大小将大于 0。我正在使用 github.com/ceeram/CakePdf 插件来创建 pdf。