2017-03-29 19 views
-1

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); 

これはattachemntを電子メールで送信しますが、添付ファイルは空のファイルです。私はそれを保存しようとすると、ファイル名とこのような拡張子があります: "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

のようにそこに複数のものを見てきましたが、理解されるであろう任意のヘルプを:(働いているように見えるdoesntの

+3

'$ reportDate。" xlsx "'は '$ reportDate 'にする必要があります。xlsx" –

+0

あなたの回答は私の答えとして受け入れられませんでした。申し訳ありませんが私はちょっとquesitons等を投稿すると新しいです – cocopan

+0

あなたはなぜ私はまだファイルが壊れているというエラーを取得する知っているだろうか?他のエラーを見つけられるように助けてくれますか? – cocopan

答えて

0

私は思う:

私が続いています!ファイル名に間違いがあります。ファイル名はfilename.xlsxではありませんfilenamexlsx

+0

ちょっと、あなたは愚かなPHPの構文が私を投げていた...助けてくれてありがとう! – cocopan

関連する問題