2009-07-29 12 views
7

मैंने तत्व को डेटा (यूआरआई योजना) में toDataURL() ($contact_image_data) का उपयोग करके परिवर्तित कर दिया है और मैं इसे ईमेल के माध्यम से अनुलग्नक के रूप में भेजना चाहता हूं। यह वर्तमान में मैं कैसे PHPMailer की स्थापना की है है:PHPMailer, AddStringAttachment और डेटा यूआरआई योजना

$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 की सामग्री शामिल है, लेकिन यह वास्तव में कोई छवि नहीं बनाती है।

कोई मदद अधिक की सराहना की जाएगी।

सैमुअल।

उत्तर

2

हां यह संभव होना चाहिए। क्या आप 'छवि/पीएनजी' एमआईएमई प्रकार के साथडेटा() को कॉल कर रहे हैं, तो यह जानता है कि इसे कैसे आउटपुट किया जाए?

अपनी स्क्रिप्ट को दो घटकों में तोड़ने का प्रयास करें - सुनिश्चित करें कि आपके पास वास्तव में एक पीएनजी है तो इसे मेल करने का प्रयास करें।

उदाहरण के लिए, जब लिखा अपने कंप्यूटर पर खोले test.png होगा? ..

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

आशा है कि एक सा मदद करता है!

+0

धन्यवाद, यह वास्तव में मददगार यह केवल 'fwrite' है कि मैं इस http पाया साथ खेलने के बाद था: //canvaspaint.org/blog/2007/01/saving-images/#comments जिसने मुझे अपना जवाब दिया। चीयर्स! –

+0

उपर्युक्त टिप्पणी में उल्लिखित लिंक का संग्रहीत संस्करण: https://web.archive.org/web/20110305022152/http://canvaspaint.org/blog/2007/01/saving-images/ – danShumway

13

यह पता चला मैं 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);   
+0

धन्यवाद यह वास्तव में मुझे बहुत मदद करता है । सही काम करता है! – Julez

संबंधित मुद्दे