2010-11-16 14 views
8

जब उपयोगकर्ता अपलोड करने के लिए फ़ाइल का चयन करता है, तो क्या अपलोड करने से पहले मुझे इस फ़ाइल का सटीक आकार मिल सकता है? मैं jQuery या जावास्क्रिप्ट के साथ क्लाइंट पक्ष पर यह करने की ज़रूरतों का अनुमान लगा रहा हूं। कोई विचार कैसे?अपलोड करने से पहले फ़ाइल आकार अपलोड करना

उत्तर

5

यह वर्तमान ब्राउज़रों में शुद्ध जावास्क्रिप्ट में नहीं किया जा सकता है।

इसके बजाय, आप Uploadify का उपयोग कर सकते हैं, जो फ्लैश का उपयोग करता है।

In non-IE browsers, आप use HTML5 to read files on the client भी कर सकते हैं।

+0

पुन: http://www.caniuse.com/। जानकारीपूर्ण लेकिन निराशाजनक लिंक। मुझे आश्चर्य है कि आईई हमेशा लाल रंग में होगा। –

0

जावास्क्रिप्ट में फ़ाइल आकारों की जांच करने की क्षमता नहीं है (या उस मामले के लिए फ़ाइल सिस्टम तक पहुंचने की क्षमता नहीं है)। आकार

0

प्राप्त करने के लिए आपको फ़ाइल अपलोड करने की आवश्यकता होगी, मेरा सुझाव है कि आप HTML5 फ़ाइल API देखें। यह, कुछ जेएस के साथ संयुक्त आपकी मदद करने में सक्षम हो सकता है। मैं केवल इसलिए कह सकता हूं क्योंकि मुझे अभी तक HTML5 मानक के इस हिस्से को ब्राउज़ करने का मौका नहीं मिला है।

http://www.w3.org/TR/FileAPI/#dfn-filereader

तरह से PHP फ़ाइल अपलोड काम करते हैं, यह पहले फ़ाइल विवरण की जाँच करने के लिए बहुत कठिन है, या एक फ़ाइल अपलोड (के बाद से अपने कोड भी लोड हो जाता है इससे पहले कि फ़ाइल अपलोड होने के) के दौरान।

मुझे पता है कि कुछ अन्य भाषाओं (संभवतः पर्ल या पायथन) में कुछ फैंसी चीजें करना संभव है जो सीधे स्क्रिप्ट के साथ अपलोड करने वाली फ़ाइल को संभालते हैं (जहां स्क्रिप्ट सॉकेट खोलती है और पूरे ट्रांसफर को ही संभालती है), हालांकि PHP यह आपके लिए करता है और आपकी स्क्रिप्ट की ओर से किसी भी फ़ाइल को स्वीकार करता है। फ़ाइल को त्याग दिया जाता है अगर यह PHP की स्वीकार्य सीमाओं के भीतर नहीं है, लेकिन फ़ाइल पूरी तरह से अपलोड होने के बाद ही।

फ़्लैश का उपयोग करके कई फ़ाइल अपलोड कार्यान्वयन भी किए गए हैं, लेकिन एक्शनस्क्रिप्ट कोडर नहीं होने के कारण, मैं वास्तव में वहां बहुत ज्यादा मदद नहीं कर सकता।

1
$("#file_input_selector").bind('change', function(){ 
alert(this.files[0].size); 
}); 

सभी संगतता मुद्दों के बारे में सुनिश्चित नहीं है, लेकिन ऐसा लगता है कि यह मेरे लिए ठीक काम कर रहा है।

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