سؤال

ولقد حولت محتويات عنصر canvas إلى البيانات (مخطط URI) باستخدام toDataURL() ($contact_image_data) وأريد أن ترسل هذه عبر البريد الإلكتروني كمرفق. هذا هو حاليا كيف أكون قد وضعت 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);   

وأنا أتساءل إذا كان هذا هو في الواقع ممكن، وإذا كان الأمر كذلك، فما هي الخطوات أنا في عداد المفقودين.

وأستطيع أن أرسل رسالة بريد إلكتروني، إرفاق ملف يسمى "test.png" الذي يحتوي على محتويات $contact_image_data، لكنه لم يكن في الواقع خلق صورة.

وأي مساعدة ستكون <م> كثير تقدير.

وصموئيل.

هل كانت مفيدة؟

المحلول

ونعم ينبغي أن يكون ممكنا. أنت تدعو toDataURL () مع "صورة / بابوا نيو غينيا 'نوع MIME لذلك يعرف كيفية إخراج ذلك؟

وحاول كسر السيناريو الخاص بك إلى مكونين - تأكد أن لديك حقا PNG <م> ثم محاولة البريدية أنه

وعلى سبيل المثال، سوف test.png مفتوحة على جهاز الكمبيوتر الخاص بك عندما مكتوبة؟ ..

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

وعلى أمل أن يساعد قليلا!

نصائح أخرى

وتبين أنني بحاجة إلى تجريد قسم 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);          
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top