Pregunta

He convertido el contenido de un elemento canvas en datos (esquema URI) utilizando toDataURL () ( $ contact_image_data ) y quiero para enviar esto por correo electrónico como un archivo adjunto. Así es como tengo configurado 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);   

Me pregunto si esto es realmente posible, y si es así, qué pasos me faltan.

Puedo enviar un correo electrónico, adjuntar un archivo llamado "test.png" que contiene el contenido de $ contact_image_data , pero en realidad no crea una imagen.

Cualquier ayuda sería agradecida .

Samuel.

¿Fue útil?

Solución

Sí, debería ser posible. ¿Está llamando aDataURL () con el tipo MIME 'image / png' para que sepa cómo generarlo?

Intente dividir su secuencia de comandos en dos componentes: asegúrese de que realmente tenga un PNG y luego trate de enviarlo por correo.

Por ejemplo, ¿se abrirá test.png en su computadora cuando esté escrito? ..

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

Espero que ayude un poco!

Otros consejos

Resulta que necesitaba quitar los datos de : image / png; base64, y base64_decode () los datos:

$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);          
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top