यदि अपलोड की गई फ़ाइल में कोई एक्सटेंशन नहीं है, तो क्या मुझे MIME प्रकार निर्दिष्ट करना होगा? दूसरे शब्दों में एक डिफ़ॉल्ट सामान्य MIME प्रकार है?
यदि अपलोड की गई फ़ाइल में कोई एक्सटेंशन नहीं है, तो क्या मुझे MIME प्रकार निर्दिष्ट करना होगा? दूसरे शब्दों में एक डिफ़ॉल्ट सामान्य MIME प्रकार है?
जवाबों:
आप application/octet-stream
अज्ञात प्रकारों के लिए उपयोग कर सकते हैं ।
RFC 2046 राज्यों में धारा 4.5.1:
"ऑक्टेट-स्ट्रीम" उपप्रकार का उपयोग यह इंगित करने के लिए किया जाता है कि किसी बॉडी में मनमाना बाइनरी डेटा है।
application/octet-stream
फ़ाइल निष्पादन योग्य है। और अगर एक ब्राउज़र है जानबूझकर एक निष्पादन योग्य फ़ाइल डाउनलोड करने, यह उपयोगकर्ता के लिए पूछे बिना "संभवतः निष्पादित" नहीं है कि यह; केवल एक निष्पादन योग्य डाउनलोड करने का अर्थ यह नहीं है कि मैं इसे अभी निष्पादित करना चाहता हूं। अगर वास्तव में एक ब्राउज़र है जो application/octet-stream
डाउनलोड पर फ़ाइलों को स्वचालित रूप से निष्पादित कर सकता है , तो हमें बताएं कि कौन सा, और व्यवहार को कैसे पुन: पेश करें। अभी मुझे आप पर विश्वास नहीं है।
हमें RFC-2046 (मीडिया प्रकार) के बजाय संदर्भ के रूप में RFC-7231 (HTTP / 1.1 शब्दार्थ और सामग्री) का उपयोग करना चाहिए क्योंकि प्रश्न स्पष्ट रूप से HTTP सामग्री-प्रकार के बारे में था।
इसके अलावा RFC-2046 स्पष्ट रूप से अज्ञात प्रकारों को परिभाषित नहीं करता है लेकिन RFC-7231 करता है।
अज्ञात डेटा के लिए MIME प्रकार न भेजें।
अधिक स्पष्ट होने के लिए: सामग्री-प्रकार हेडर का उपयोग बिल्कुल न करें।
RFC-7231
हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP / 1.1): शब्दार्थ और सामग्री
3.1.1.5। सामग्री प्रकारएक प्रेषक जो एक संदेश देता है जिसमें एक पेलोड बॉडी होती है SHOULD
उस संदेश में एक कंटेंट-टाइप हेडर फ़ील्ड जनरेट करता है जब तक कि
इच्छित मीडिया प्रकार का संलग्न प्रतिनिधित्व
प्रेषक के लिए अज्ञात न हो ।
यदि आप इसे निश्चित रूप से नहीं जानते हैं तो यह खंड आपको इसे छोड़ने के लिए स्पष्ट रूप से कहता है। यह भी बताता है कि रिसीवर यह मान सकता है कि टाइप एप्लिकेशन / ऑक्टेट-स्ट्रीम है लेकिन बात यह है कि यह कुछ और भी हो सकता है।
आरएफसी -2046
4.5.1। ऑक्टेट-स्ट्रीम सबटाइपएक कार्यान्वयन के लिए अनुशंसित कार्रवाई जो
"एप्लिकेशन / ऑक्टेट-स्ट्रीम" इकाई प्राप्त करती है, वह बस
किसी भी सामग्री-स्थानांतरण-एन्कोडिंग पूर्ववत या
किसी उपयोगकर्ता द्वारा निर्दिष्ट इनपुट के रूप में उपयोग करने के लिए किसी फ़ाइल में डेटा डालने की पेशकश करना है। प्रक्रिया।
और, जैसा कि पहले ही ऊपर कहा जा चुका है:
RFC-7231
3.1.1.5। सामग्री प्रकारयदि कोई सामग्री-प्रकार हेडर फ़ील्ड मौजूद नहीं है, तो प्राप्तकर्ता MAY या तो एक मीडिया प्रकार का "एप्लिकेशन / ऑक्टेट-स्ट्रीम"
([RFC2046], धारा 4.5.1) मान सकता है या उसके प्रकार को निर्धारित करने के लिए डेटा की जांच कर सकता है।
यदि आप इसे "एप्लिकेशन / ऑक्टेट-स्ट्रीम" के रूप में परिभाषित करते हैं तो आप बता रहे हैं कि आप जानते हैं कि यह "एप्लिकेशन / ऑक्टेट-स्ट्रीम" है।
यदि आप इसे परिभाषित नहीं करते हैं, तो आप बता रहे हैं कि आपको नहीं पता कि यह क्या है और रिसीवर और रिसीवर को निर्णय छोड़ दें और फिर जांच कर सकता है कि क्या यह बतख की तरह चलता है और ...
मैं पसंद करता हूं application/unknown
, लेकिन परिणाम निश्चित रूप से वैसा ही होगाapplication/octet-stream
application/octet-stream
या application/unknown
? वहाँ एक कारण है कि वे का आविष्कार किया है image/png
।