2011-11-24 8 views
9

मैं एक बेस 64 हो रही है मेरी वेब सेवा करने के लिए एक पोस्ट अनुरोध के माध्यम से जेपीईजी स्ट्रिंग इनकोडिंग। मैं इसे डिकोड और फाइल सिस्टम में सहेजने के लिए चाहते हैं। PHP 5.3 का उपयोग करके मैं इसे कैसे प्राप्त कर सकता हूं। मैं सफलतापूर्वक base64_decode समारोह का उपयोग कर डेटा को डिकोड करने में सक्षम हूँ।php का उपयोग कर फाइल सिस्टम में बेस 64 डीकोडेड छवि को कैसे सहेजना है?

मैं इस सर्वर में एक छवि के रूप में डीकोड स्ट्रिंग कैसे बचा सकते हैं?

अग्रिम धन्यवाद।

+0

यू fopen का उपयोग कर एक बाइनरी फ़ाइल में इस को बचाने की कोशिश की थी? – Arfeen

+0

@Arfeen धन्यवाद, मैं file_put_contents की कोशिश की() है और यह काम किया। मैं अपने प्रश्न को अपडेट करने के लिए यहां आया था कि आपका और लॉरेंस चेरोन की टिप्पणियां। – Amit

+0

एक सामान्य समाधान के रूप में जो अधिक लचीला और शक्तिशाली है, [PHP-FileUpload] (https://github.com/delight-im/PHP-FileUpload/tree/master) दोनों ['Base64Upload'] (https: //github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb/src/Base64Upload.php) और ['DataUriUpload'] (https://github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb /src/DataUriUpload.php), जो [यहां दस्तावेज हैं] (https://github.com/delight-im/PHP-FileUpload/blob/master/README.md#usage)। – caw

उत्तर

12

आप सुनिश्चित हैं कि छवि हमेशा जेपीजी तो आप बस का उपयोग कर सकते हो जाएगा: file_put_contents();

<?php 
$decoded=base64_decode($encodedString); 

file_put_contents('newImage.JPG',$decoded); 
//leave it to you to randomize the filename. 
?> 
+0

बहुत बहुत धन्यवाद। यह काम करता हैं। हालांकि यह हमेशा एक जेपीईजी होने की गारंटी नहीं है। मैं कोशिश करूंगा और देख सकता हूं कि क्या मैं इसे एमआईएमई प्रकार से प्राप्त कर सकता हूं। :) मदद की सराहना करें! – Amit

8

+ संकेत के साथ खाली रिक्त स्थान की जगह डेटा canvas.toDataURL() फ़ंक्शन से प्राप्त होता है, तो आवश्यक है।

$encodedString = str_replace(' ','+',$encodedString); 

See this question

यह मेरे मामले में बहुत मदद की।

+0

उसे स्ट्रिंग को डीकोड करने की आवश्यकता है। – FabianoLothor

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