8

( )を使用して要素の内容canvasをデータ(URIスキーム)に変換しました。これを添付ファイルとして電子メールで送信したいと思います。これは現在、PHPMailerを設定する方法です。toDataURL()$contact_image_data

$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実際には画像が作成されません。

どんな助けでも歓迎です。

サミュエル。

4

2 に答える 2

17

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);          
于 2009-07-29T19:41:35.933 に答える
2

はい、それは可能であるはずです。'image / png' MIMEタイプでtoDataURL()を呼び出しているので、出力方法がわかりますか?

スクリプトを2つのコンポーネントに分割してみてください。実際にPNGがあることを確認してから、メールで送信してみてください

たとえば、test.pngは、書き込まれたときにコンピューターで開きますか?..

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

それが少し役立つことを願っています!

于 2009-07-29T18:02:12.317 に答える