【问题标题】:getting blank pdf file attachment using phpmailer and mpdf使用 phpmailer 和 mpdf 获取空白 pdf 文件附件
【发布时间】:2014-11-14 11:32:43
【问题描述】:

当单击按钮并将它们保存在文件夹中时,我正在使用 mPDF 生成 PDF。我正在寻找一种使用 PHPmailer 将 PDF 添加到附件的方法。这是我尝试过的:

$dir =  $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']);

$pdfexist = $dir."/classes/pdf/feestructure_".$student['rollno'].".pdf";
        $mail = new PHPMailer;
        $mail->isSMTP();
        $mail->From="xyz@abc.com";
        $mail->FromName="xyz";
        $mail->addAddress("xyz@abc.com");
        //echo $email."<br/>";
        $mail->addAddress("xyz@abc.com");
        $mail->addAddress("xyz@abc.com");
        $mail->Subject = 'XYZ';

       $pdfstring = $pdfexist;
       $mail->AddStringAttachment($pdfstring, "feestructure_".$roll.".pdf", $encoding = 'base64', $type = 'application/pdf');   

我生成的 pdf 大小为 13k,但在邮件附件中显示为 1k。请帮帮我。

这是 mpdf 的输出:

$mpdf->WriteHTML(file_get_contents("$dir/feestructure_pdf.php?rollno=$rollno"));    
          $pdfname="feestructure_".$rollno.".pdf";   
          $mpdf->Output("classes/pdf/".$pdfname,"F");

【问题讨论】:

    标签: php phpmailer mpdf


    【解决方案1】:

    您的 $pdfexists / $pdfstring 变量包含文件路径,而不是二进制 PDF 数据,因此您应该使用 AddAttachment(),而不是 AddstringAttachment()。 AddAttachment 附加文件(如您的 PDF),AddStringAttachment 附加字符串,如您可能从网络调用或数据库中返回的内容。

    $mail->AddAttachment($pdfstring, "feestructure_".$roll.".pdf", $encoding = 'base64', $type = 'application/pdf');
    

    【讨论】:

    • 非常感谢您的回答,虽然我通过 curl() 完成了它,但它很有帮助,因为我的 pdf 生成页面和这个页面是分开的。
    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2019-10-08
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多