2013-07-16 7 views
6

से पीडीएफ संलग्न करता है मैं phpmailer का उपयोग कर एक ईमेल भेज रहा हूं। मेरे पास पीडीएफ उत्पन्न करने के लिए वेब सेवा है। यह पीडीएफ कहीं भी अपलोड या डाउनलोड नहीं कर रहा है।phpmailer गतिशील यूआरएल

पीडीएफ यूआरएल

तरह
http://mywebsite/webservices/report/sales_invoice.php?company=development&sale_id=2 

मैं अपने ईमेल को यह गतिशील पीडीएफ यूआरएल साथ जोड़ने की आवश्यकता है। तरह

http://mywebsite/webservices/mailservices/sales_email.php 

नीचे कोड जो मैं पीडीएफ संलग्न करने के लिए उपयोग कर रहा हूँ है मेरे ईमेल भेजने सेवा यूआरएल है।

$pdf_url = "../report/sales_invoice.php?company=development&sale_id=2"; 
$mail->AddAttachment($pdf_url); 

संदेश भेज रहा है लेकिन पीडीएफ संलग्न नहीं है। यह नीचे संदेश देता है।

फ़ाइल का उपयोग नहीं कर सका: ../report/sales_invoice.php?company=development & sale_id = 2

मैं कुछ मदद की ज़रूरत है

+6

मुझे अपने आप को जवाब मिला। नीचे समाधान है। $ string = file_get_contents ("http: //mywebsite/report/sales_invoice.php? company = development & sale_id = 2"); $ मेल-> AddStringAttachment ($ string, "sales_invoice.pdf", $ एन्कोडिंग = 'बेस 64', $ type = 'application/pdf'); – Irawana

+0

[PHPMailer AddAttachment दूरस्थ फ़ाइल] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/16485685/phpmailer-addattachment-remote-file) –

+2

आपको समाधान को "उत्तर" में जोड़ना चाहिए और इसके बजाय इसे सही उत्तर चिह्नित करना चाहिए एक टिप्पणी जोड़ने का! – RPDeshaies

उत्तर

6

यहीं उत्तर करने के लिए:

PHPMailer के रूप में रिमोट कंटेंट को स्वतः नहीं लाएगा, आपको इसे स्वयं करने की ज़रूरत है।

तो तुम जाओ:

// we can use file_get_contents to fetch binary data from a remote location 
$url = 'http://mywebsite/webservices/report/sales_invoice.php?company=development&sale_id=2'; 
$binary_content = file_get_contents($url); 

// You should perform a check to see if the content 
// was actually fetched. Use the === (strict) operator to 
// check $binary_content for false. 
if ($binary_content === false) { 
    throw new Exception("Could not fetch remote content from: '$url'"); 
} 

// $mail must have been created 
$mail->AddStringAttachment($binary_content, "sales_invoice.pdf", $encoding = 'base64', $type = 'application/pdf'); 

// continue building your mail object... 

कुछ अन्य बातों के लिए बाहर देखने के लिए:

सर्वर प्रतिक्रिया समय के आधार पर, अपनी स्क्रिप्ट समय में समस्याएं आ रही हो सकता है। साथ ही, प्राप्त डेटा बहुत बड़ा हो सकता है और PHP को इसकी स्मृति आवंटन से अधिक होने का कारण बन सकता है।

+0

बहुत धन्यवाद ... मैंने केवल अर्धविराम ($ url) के बाद जोड़ा; और यह पूरी तरह से काम करता है। – felixmpa

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