2017-03-29 4 views
-1

를 사용하여 첨부 파일로 엑셀이는 attachemnt 된 이메일을 전송하지만 첨부 파일이 빈 파일입니다보내는 PHP는 나는 다음과 같은 한 PHP 메일

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
ob_start(); 
$objWriter->save("php://output"); 
$xlsData = ob_get_contents(); 
$xlsData1= "data:application/vnd.ms-excel;base64,".base64_encode($xlsData); 
ob_end_clean(); 


     //Require for mailing functionality 
     require_once('../../PHPMailer/PHPMailer-master/class.phpmailer.php'); 

     //Send mail function 
     $mail= new PHPMailer(); // defaults to using php "mail()" 
     $sender ="emailadddress"; 
     $mail->SetFrom($sender); 
     $mail->AddAddress('emailaddress'); 
     $mail->Subject="Combined repair and production report from ".$reportDate; 
     $encoding = "base64"; 
     //$type = "image/png"; 
     $mail->AddStringAttachment(base64_decode($xlsData1), "combined_report".$reportDate."xlsx"); 
     //$mail->AddAttachment($xlsData, $filename); 
     $message= "Please see attached combined report"; 
     $message = "</body></html>";    
     $mail->MsgHTML($message);  

     if(!$mail->Send()) 
     { 
      $response = array(
       'op' => 'failed', 
       'file' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData) 
      ); 
     } 
     else 
     { 
      $response = array(
       'op' => 'ok', 
       'file' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData) 
      ); 

     } 





die(json_encode($response)); 
pg_close($conn); 

. 저장하려고하면 파일 이름과 확장명이 다음과 같습니다. "filenamexlsx"올바른 xlsx 형식을 얻지 못하는 것 같습니다. 나도이 시도 : 나는 또한 시도

$mail->AddStringAttachment("data:application/vnd.ms-excel;base64,".base64_encode($xlsData); 

:

$encoding = "base64"; 
    $type = "application/vnd.ms-excel"; // and :application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
    $mail->AddStringAttachment(base64_decode($xlsData1), "combined_report".$reportDate."xlsx",$encoding,$type); 

내가 대신 문자열 첨부 파일의 AddAttachment()를 사용하여 시도하고 내가 그렇게 할 전자 메일에는 첨부 파일이 없습니다. php send e-mail with attachment

을 또한 PHPMailer, AddStringAttachment and Data URI Scheme

처럼 거기에 여러 가지 살펴 보았다하지만 이해할 수있을 것이다 도움이 :(작업을 한 것으로 나타났습니다 나던

+3

'$ reportDate. "xlsx"'는 '$ reportDate'여야합니다. xlsx " –

+0

당신이 내 대답을 받아들이지 못하게하고 다른 사람들이 그처럼 작은 실수를 저 지르 길 원치 않았습니다. 죄송합니다. quesitons 등을 게시하는 데 다소 익숙합니다. – cocopan

+0

파일이 손상되었다는 오류가 계속 나타나는 이유를 알고 계시겠습니까? 다른 오류를 발견하도록 도와 주시겠습니까? – cocopan

답변

0

내 생각 :

나는 따랐다! 파일 이름에 실수가 있습니다. 파일 이름은 이어야합니다. filename.xlsx이 아님 filenamexlsx

+0

jeez, 당신은 바보 같은 PHP 구문이 날 던지고 있었어 ... 덕분에 도움을 주셔서 감사합니다! – cocopan