Вопрос

Я преобразовал содержимое canvas элемент в данные (схема URI) с использованием 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() с MIME-типом «image/png», чтобы он знал, как его вывести?

Попробуйте разбить скрипт на два компонента — убедитесь, что у вас действительно есть 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