Pergunta

Eu ter convertido o conteúdo de um elemento canvas aos dados (Esquema URI) usando toDataURL() ($contact_image_data) e eu quero enviar esta via e-mail como um anexo. Este é atualmente como tenho PHPMailer configurar:

$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$filename="test.png"; 
$encoding = "base64"; 
$type = "image/png";
$mail->AddStringAttachment($contact_image_data, $filename, $encoding, $type);   

Eu estou querendo saber se isso é realmente possível, e em caso afirmativo, quais os passos que estou em falta.

Eu posso enviar um e-mail, anexar um arquivo chamado “test.png”, que contém o conteúdo do $contact_image_data, mas que na verdade não criar uma imagem.

Qualquer ajuda seria muito apreciado.

Samuel.

Foi útil?

Solução

Sim, deve ser possível. Você está chamando toDataURL () com o tipo 'image / png' MIME para que ele saiba como saída dele?

Tente quebrar o seu script em dois componentes -. Certifique-se de realmente ter um PNG então tentar enviá-la

Por exemplo, vai test.png aberta no seu computador quando foi escrito? ..

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

Espero que ajude um pouco!

Outras dicas

Acontece que eu precisava para tirar a secção data:image/png;base64, e base64_decode() os dados:

$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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top