इस प्रश्न का उत्तर शायद रेल से अधिक HTML अपलोडिंग से संबंधित है।
जब आप कोई फ़ाइल अपलोड करना चाहते हैं, तो आप आमतौर पर टाइप = "फ़ाइल" के साथ इनपुट करते हैं।
यह file_field_tag helper का उपयोग करके रेल में किया जा सकता। यह टाइप = "फाइल" के साथ एक इनपुट उत्पन्न करेगा जिसमें विशेषता स्वीकार कर सकता है, लेकिन आप वास्तव में इसका उपयोग नहीं कर सकते क्योंकि यह वास्तव में कोई दृश्य प्रभाव नहीं पड़ता है। यह विशेषता MIME प्रकार स्वीकार करती है, एक्सटेंशन नहीं, और अधिकांश ब्राउज़र इसका भी उपयोग नहीं करते हैं।
सबसे अच्छी बात तो आप शायद एक जावास्क्रिप्ट जाँच अपलोड करने से पहले फाइल एक्सटेंशन (आप संवाद बॉक्स से फ़ाइल का चयन करने के बाद) है है कर सकते हैं। this question में इसके बारे में और पढ़ें।
बिंदु यह है कि आप ओएस को केवल फाइल एक्सटेंशन दिखाने के लिए मजबूर नहीं कर सकते हैं जो आप चाहते हैं। उदाहरण के लिए आप जे एस का उपयोग कर, अपलोड करने से पहले से विस्तार मान्य कर सकते हैं या तो, या अपलोड करने के बाद फ़ाइल, सर्वर साइड
स्रोत
2011-01-13 14:15:08
जावास्क्रिप्ट का उपयोग करना एक अच्छा विचार नहीं है क्योंकि इसे आसानी से अवरुद्ध किया जा सकता है। सर्वर-साइड सत्यापन के साथ बेहतर जाएं, उदा। जैसा कि पेपरक्लिप द्वारा समर्थित है। –
मैं सत्यापन के लिए जावास्क्रिप्ट के उपयोग की सिफारिश नहीं कर रहा हूं, लेकिन केवल औपचारिकता के रूप में (मेरा मतलब है .. क्यों किसी को गलत एक्सटेंशन के साथ एक तस्वीर अपलोड करने दें)। यदि उपयोगकर्ता एक फ़ाइल अपलोड करता है, यहां तक कि आवश्यक एक्सटेंशन के साथ, यह स्पष्ट रूप से यह सर्वर-पक्ष की जांच की जानी चाहिए। लेकिन यह मुद्दा यहां नहीं है। सवाल यह था कि अपलोड करने से पहले इसे सत्यापित किया जा सकता है (शायद कुछ ऐसा अपलोड करने के लिए समय बचाने के लिए जो वैध नहीं है। कम से कम मैं इसे कैसे देखता हूं) –