我已经使用 toDataURL() $ contact_image_data )将 canvas 元素的内容转换为数据(URI Scheme),我想要通过电子邮件将其作为附件发送。这是我目前如何设置PHPMailer:

$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$filename="test.png"; 
$encoding = "base64"; 
$type = "image/png";
$mail->AddStringAttachment($contact_image_data, $filename, $encoding, $type);   

我想知道这是否真的可行,如果可行,我错过了哪些步骤。

我可以发送电子邮件,附上名为“ test.png”其中包含 $ contact_image_data 的内容,但它实际上并没有创建图像。

任何帮助都会非常赞赏。

塞缪尔。

有帮助吗?

解决方案

是的,应该是可能的。您是否使用'image / png'MIME类型调用toDataURL()以便它知道如何输出它?

尝试将您的脚本分成两个组件 - 确保您确实有一个PNG 然后尝试邮寄它。

例如,编写时会在您的计算机上打开test.png吗?..

<?php
$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$fp = fopen('test.png', 'w');
fwrite($fp, $contact_image_data);
fclose($fp);
?>

希望有所帮助!

其他提示

事实证明我需要剥离 data:image / png; base64,部分和 base64_decode()数据:

$contact_image_data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA";
$data = substr($contact_image_data, strpos($contact_image_data, ","));
$filename="test.png"; 
$encoding = "base64"; 
$type = "image/png";
$mail->AddStringAttachment(base64_decode($data), $filename, $encoding, $type);          
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top