0

私はdompdfを使用してpdfファイルを動的に生成し、それらを電子メールに添付して送信しています。しかし、メールでは常に添付ファイルが 0 バイトとして取得されます。Cake の tmp フォルダーの下にファイルを作成していますが、正常に作成されています。Cakephp 2.x を使用し、CakeEmail を使用してメールを送信しています。dompdf フォルダーは plugin フォルダーにあります。lib/fonts ディレクトリに必要な権限を与えました。作成直後は添付ファイルとして送信されません。Cakeemail がファイルの内容を取得できなかった (しかしファイルは存在する) dompdf を使用しているときに、何らかのロック/遅延が発生するかどうか。

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のLengthパラメータは0より大きい必要があります. pdf の代わりに、サンプルのテキスト ファイルを作成すると、添付されてサイズが 0 より大きくなります。pdf の作成には github.com/ceeram/CakePdf プラグインを使用しています。

4

1 に答える 1

0

ここでも同じ問題があります ( $Email->attachments() はファイルを添付しません)。ちなみに、ロックの問題ではありません。PDF をデータベースに書き込む場合、醜い回避策を実行できます。ここを見てください:https://stackoverflow.com/a/17744761/1145597

于 2013-07-19T11:18:50.150 に答える