PHPMailer, AddStringAttachment e schema URI dei dati
Domanda
Ho convertito il contenuto di un elemento canvas
in dati (schema URI) usando toDataURL ()
( $ contact_image_data
) e desidero per inviarlo via e-mail come allegato. Questo è attualmente il modo in cui ho configurato 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);
Mi chiedo se ciò sia effettivamente possibile e, in caso affermativo, quali passi mi mancano.
Posso inviare un'email, allegare un file chiamato "test.png" che contiene il contenuto di $ contact_image_data
, ma in realtà non crea un'immagine.
Qualsiasi aiuto sarebbe molto apprezzato
Samuel.
Soluzione
Sì, dovrebbe essere possibile. Stai chiamando toDataURL () con il tipo MIME 'image / png' in modo che sappia come emetterlo?
Prova a suddividere lo script in due componenti: assicurati di avere un PNG , quindi prova a spedirlo.
Ad esempio, test.png si aprirà sul tuo computer quando scritto? ..
<?php
$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$fp = fopen('test.png', 'w');
fwrite($fp, $contact_image_data);
fclose($fp);
?>
Spero che ti aiuti un po '!
Altri suggerimenti
Si scopre che dovevo eliminare i dati: image / png; base64,
e base64_decode ()
i dati:
$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);