2013-02-09 48 views
9

मैं चाहता हूं कि मेरा मोबाइल एप्लिकेशन मेरे सर्वर पर एक छवि अपलोड करने में सक्षम हो, मेरे मामले में यह रेल 3.2.11nginx के साथ है।बेस 64 छवि अपलोड वीएस बाइनरी छवि अपलोड?

मैं बेस 64 क्लाइंट पक्ष पर एन्कोडिंग और फिर सर्वर की ओर डीकोडिंग के बारे में बहुत कुछ पढ़ता हूं।

क्यों न सिर्फ http अनुरोध पर बहुखण्डीय हेडर के साथ द्विआधारी अपलोड का उपयोग करें?

क्या कोई तकनीकी पेशेवर/विपक्ष प्रत्येक तकनीकी के लिए है?

उत्तर

16

बेस 64 आपके डेटा को बाइनरी डेटा के ASCII प्रतिनिधित्व में परिवर्तित करता है। यह आपको उदाहरण के लिए JSON जैसे टेक्स्ट स्ट्रीम में अपना डेटा एम्बेड करने की अनुमति देता है। बेस 64 33% द्वारा स्थानांतरित डेटा के आकार को बढ़ाता है।

multipart/form-data HTTP अनुरोधों में बाइनरी डेटा स्थानांतरित करने का मानक तरीका है। यह आपको प्रत्येक भाग के लिए विशिष्ट एन्कोडिंग/सामग्री प्रकारों का उपयोग करने की अनुमति देता है जिन्हें आप स्थानांतरित करना चाहते हैं। मेरी राय में, जब तक आपके पास विशिष्ट आवश्यकताएं या डिवाइस/एसडीके क्षमताओं न हों तब तक आपको अपलोड को मल्टीपार्ट करना चाहिए।

1

'http अनुरोध पर मल्टीपार्ट हेडर के साथ बाइनरी अपलोड का उपयोग क्यों न करें?' वास्तव में क्यों नहीं;)

बेस 64 छवि प्रतिनिधित्व सीधे छवि को प्रस्तुत करने के लिए एचटीएमएल के भीतर रखा जा सकता है।

बाइनरी कम जगह लेता है। और अधिक नेटवर्क प्रभाव और मानकीकरण से लाभ। जैसे अगर आप अमेज़ॅन सरल सुरक्षित स्टोरेज एस 3 का उपयोग करना चाहते हैं तो आपको बाइनरी फाइल स्टोर करना होगा। आप एक स्ट्रिंग को स्टोर नहीं कर सकते हैं जिसके लिए आपको एक कुंजी/मूल्य स्टोर की आवश्यकता होगी उदा। redis।