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.

È stato utile?

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);          
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top