我尝试通过电子邮件发送 PDF 或 PNG,但似乎没有任何效果。以下是我最后的尝试,我已经阅读了这里的每一篇文章,但没有任何建议起作用,有人可以帮忙吗?
我正在使用 PHPMailer、html2pdf 和 html2canvas,这两个都可以在点击时生成正确的文档,只是将它们发送到 php mailer 是行不通的。
我收到无法打开的文档...以下是我最后的尝试...
使用 file_get_contents 方法我得到 0 大小的数据。
PDF尝试:
var element = document.getElementById('printableArea');
// var opt = {
// filename: 'nalog.pdf'
// };
html2pdf().from(element).toPdf().output('datauristring').then(function (pdfAsString) {
pdfcontent = pdfAsString.replace(/&/,"%26").replace(/=/,"%3D");
var x = new XMLHttpRequest();
var url = "xxx/mail.php";
x.open("POST", url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
x.send("data="+pdfcontent);
console.log(pdfcontent);
});
PHP:
$mail->AddStringAttachment($_POST['data'],"nalog.pdf");
PNG尝试:
html2canvas($('#printableArea')[0], {
width: 1200
}).then(function(canvas) {
var data = canvas.toDataURL("image/png");
pdfcontent = data.replace(/&/,"%26").replace(/=/,"%3D");
var x = new XMLHttpRequest();
var url = "xxx/mail.php";
x.open("POST", url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
x.send("data="+pdfcontent);
console.log(pdfcontent);
});
PHP:
$mail->AddStringAttachment($_POST['data'],"nalog.png");
EDIT:为了更新我的问题,我从答案中提出了建议,并尝试对其进行调试,但没有任何帮助。我制作了 PHP file_put_contents() 并将其与控制台日志进行比较,它是相同的数据。
还有其他建议吗?