【发布时间】:2020-04-25 22:08:59
【问题描述】:
我试图通过电子邮件发送 PDF 或 PNG,但似乎没有任何效果。下面是我的最后一次尝试,我已经阅读了关于 SO 的每一篇文章,但没有看到任何建议的工作,有人可以帮忙吗? 我正在使用 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");
编辑: 为了更新我的问题,我从 anwser 提出了建议并尝试对其进行调试,但没有任何帮助。我制作了 PHP file_put_contents() 并与控制台日志进行了比较,它是相同的数据。
还有其他建议吗?
【问题讨论】:
-
一次测试一件事:在您尝试通过电子邮件发送之前检查 PDF 或 PNG 是否有效。目前你无法判断问题出在哪里。
-
@Synchro 感谢您的输入,我尝试调试它并找到源代码。
-
请不要将
[solved]之类的虚假标签编辑到问题的标题中。要将问题标记为已解决,请接受答案。 -
@meagar 没问题,我第一次这样做,想想看,从来没有像这样播种标签,我现在明白为什么了。但为什么要删除其余部分?
-
我回滚了你的编辑;如果您想更新标题以使其更清晰,请随时这样做。
标签: javascript php phpmailer html2canvas html2pdf