2013-04-02 2 views
0

나는 dompdf를 사용하여 pdf 파일을 동적으로 생성하고 전자 메일과 보내기에 첨부합니다. 그러나 메일에서 항상 첨부 파일을 0 바이트로 얻습니다. 케이크의 tmp 폴더 아래에 파일을 만들고 성공적으로 만들어지고 있습니다. 저는 cakephp 2.x를 사용하고 CakeEmail을 사용하여 메일을 보냅니다. dompdf 폴더는 플러그인 폴더에 있습니다. lib/fonts 디렉토리에 필요한 권한을 부여했습니다. 파일은 생성 직후 첨부 파일로 보내지 않습니다. domem을 사용하는 동안 cakeemail이 파일의 내용을 가져올 수 없지만 (파일이 존재 함) 어떤 종류의 잠금/지연이 있는지 여부Cakephp는 0 바이트로 첨부 파일을 보내 전자 메일을 보냅니다.

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('[email protected]'); 
$email->attachments(array($filename)); 
$email->subject('Your order'); 
$content = $email->send(); 

fread() : CakeEmail에서 Length 매개 변수가 0보다 커야합니다. pdf 대신 샘플 텍스트 파일을 만들면 첨부 파일 크기가 0보다 커집니다. pdf 작성을 위해 github.com/ceeram/CakePdf 플러그인을 사용하고 있습니다.

+0

'$ path'와'$ filename'이 맞습니까? 그렇다면'send()'뒤에 생성 된 파일을 지우고 있습니까? – noslone

+0

빠른 답장을 보내 주셔서 감사합니다. 경로가 맞는지 확인하십시오. 거기에 이전에 생성 된 파일의 이름을 하드 코드하면 첨부됩니다. 파일을 삭제하지 않을 것입니다. 또한 로컬 컴퓨터에서 CSS와 이미지가 pdf로 표시되지만 프로덕션으로 이동하면 표시되지 않습니다. 그것이 이것에 영향을 줄 것인가? – binoy

+0

비슷한 것을 구현했고 파일을 찾을 수 없을 때 첨부 파일이 0 바이트가되었습니다. 로그를 확인 했습니까? – noslone

답변

관련 문제