Я преобразовал содержимое элемента canvas
в данные (URI Scheme), используя toDataURL()
( $contact_image_data
), и я хочу отправить его по электронной почте в виде вложения. В настоящее время я устанавливаю 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
, но фактически не создает изображение.
Любая помощь будет высоко оценена.
Самуэль.
Да, это должно быть возможно. Вы вызываете toDataURL () с типом «image / png» MIME, чтобы он знал, как его выводить?
Попробуйте разбить свой скрипт на два компонента – убедитесь, что у вас действительно есть 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,
section и 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);