我希望形成一个文件(PHPExcel)并将其作为附件邮寄(PHPMailer)而不存储服务器,是否可能?
我知道在PHPExcel中形成/创建文件并通过PHPMailer here将其作为附件发送的可能性。但它通过在服务器中的某个地方写入文件来工作。就服务器资源消耗而言差。 PHPExcel允许直接以这种方式输出而无需保存在服务器上:
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
ob_end_clean();
header('Content-Type: application/vnd.ms-excel');
...
$objWriter->save('php://output');
是否有可能(以及如何)将其附加到电子邮件中,类似于 save('php:// output')?
答案 0 :(得分:0)
要在不使用本地文件的情况下发送附件,请使用addStringAttachment()
方法。例如:
$string = $mything->getExcelData();
$mail->addStringAttachment($string, 'myfile.xls');
在内部,我们会调用PHPMailer::filenameToType()
,这会为application/vnd.ms-excel
扩展名设置相应的.xls
MIME类型。
一般来说,你可能不需要过多担心内存消耗这样做 - PHPExcel本身比仅仅暂时存储这个字符串要占用大量内存,所以如果你遇到麻烦,你很可能会在你做到这一点之前这样做