问题描述
我在网站上有一张客户填写的表格。当用户填写表格并单击时,提交数据将发送到我已经创建的pdf(发票)中,并且该数据会填充pdf中的某些位置。我使用PDFTK库做到了这一点:
public function generate($data)
{
$filename = date("d-m-Y-His") . ".pdf";
$pdf = new Pdf('./form.pdf');
$pdf->fillForm($data)
->flatten()
->saveAs('./completed/' . $filename);
$path = './completed/' .$filename;
return $path;
}
问题是,我不知道如何通过PHPMailer库发送此填充的pdf,因为pdf必须是字符串才能与PHPmailer一起使用。
$pdf = new GeneratePDF;
$response = $pdf->generate($data);
$email = new PHPMailer();
$email->SetFrom('[email protected]','Your Name');
$email->Subject = 'Test';
$email->Body = 'Test';
$email->AddAddress( 'mail exmp' );
$email->AddAttachment( $response,'NameOfFile.pdf' );
$email->Send();
以及如何在cpanel服务器中实际保存文件,因为当我这样做时,它在服务器上不起作用。
解决方法
pdf必须是字符串才能与phpmailer一起使用
这不是事实。 addAttachment()
要求您将路径传递到磁盘上的本地文件,因此可以执行以下操作:
$email->addAttachment(generate(),'NameOfFile.pdf');
您可以使用addStringAttachment()
传递二进制字符串,但这不是您要的。