【发布时间】:2018-09-21 23:50:14
【问题描述】:
所以基本上我已经尽我所能在这里尝试了。
我正在我的网站上添加一项新功能,其中包括创建一个 PNG 图像 (html2canvas),允许用户下载该图像(效果很好)和/或将其发送给“朋友”或“你自己”一次图像已创建...
问题是我无法让 PHPmailer 捕获图像并将其发送到给定的电子邮件地址,它只是发送带有附件的电子邮件,但该附件是空的。
这是我最后的代码:
HTML:
<form id="form_id" method="post" enctype="multipart/form-data">
<input id="form_image_data" type="hidden" name="image" value="">
<button id="send">Send</button>
</form>
JS (这是单击“发送”按钮时发生的情况):
var canvas = document.querySelector('canvas').toDataURL();
var image = document.getElementById('form_image');
image.setAttribute('name', 'image');
var formData = new FormData($('#form_id')[0]);
$.ajax({
dataType: 'JSON',
data: formData,
type: 'POST',
cache: false,
contentType: false,
processData: false,
url: 'the_url_to_phpmailer',
success: function(data) {
alert(data.confirm);
}
});
PHP:
$email = $_POST['email'];
$image = $_POST['image'];
$content = '.....';
$mail->setFrom('myemail@myemail.com', 'Website Name');
$mail->addAddress($email);
$mail->isHTML(true);
$mail->addStringAttachment($image, 'image.png');
$mail->Subject = 'Image from website.';
$mail->Body = $content;
$mail->AltBody = $content;
$mail->send();
非常感谢! 一切都非常感谢!
【问题讨论】:
-
到达的数据是什么格式的?看起来它可能是一个
dataURL,它不是您需要的二进制 PNG 数据。我们需要更多关于数据在您的脚本中的样子的信息。 -
@Synchro 它是base64,只是摸索出来的。我会自己回答这个问题,谢谢!