2012-01-23 15 views
6

input type="file" एचटीएमएल टैग का उपयोग करने के बजाय, input type="button" पर क्लिक करके choose a file to upload संवाद बॉक्स लाने के लिए संभव है? फिर जब choose a file to upload संवाद बॉक्स से फ़ाइल का चयन किया जाता है, तो फ़ाइल पथ नियमित HTML input type="text" टैग में डाला जाता है?बटन दिखाने के लिए एक बटन का चयन करें संवाद बॉक्स

मुझे लगता है कि जीमेल कुछ समान करता है लेकिन बटन और टेक्स्ट इनपुट के साथ नहीं, उनके पास बस एक लिंक add file या ऐसा कुछ है। जब वह लिंक क्लिक किया जाता है, तो यह select file(s) to upload by mail.google.com संवाद बॉक्स दिखाता है। जब कोई फ़ाइल क्लिक की जाती है, तो फ़ाइल का नाम स्क्रीन पर दिखाया जाता है।

वे यह कैसे कर रहे हैं?

+1

यदि आप जीमेल में "फाइल संलग्न करें" पर राइट क्लिक करते हैं तो आप देखेंगे कि उन्होंने फ्लैश के साथ ऐसा किया है। – Aknosis

उत्तर

3

मुझे लगता है कि अधिकांश ब्राउज़रों ने सुरक्षा उद्देश्यों के लिए इसे बंद कर दिया है। बटन और टेक्स्ट बॉक्स को जावास्क्रिप्ट के माध्यम से छेड़छाड़ की जा सकती है। फ़ाइल इनपुट बॉक्स नहीं कर सकते हैं, और अच्छे कारण के लिए; कल्पना करें कि क्या जावास्क्रिप्ट एक संवाद खोल सकता है, पथ को अपने सिस्टम पर एक संवेदनशील फ़ाइल पर सेट करें, फिर फ़ाइल को डाउनलोड करने के लिए बटन को अनुकरण करें!


वैसे, आप इसे शैली के लिए देख रहे हैं, तो शायद यह काम करेगा: http://www.quirksmode.org/dom/inputfile.html

+0

जीमेल कुछ समान नहीं करता है, लेकिन बटन और टेक्स्ट इनपुट प्रकारों का उपयोग करने के बजाय, वे चयनित फ़ाइलों को दिखाने के लिए एक लिंक और संभवतः एक अवधि या div टैग का उपयोग कर रहे हैं। जहां लिंक अपलोड संवाद बॉक्स दिखाता है? – oshirowanen

+1

मेरा मानना ​​है कि जीमेल अपने "अटैच" फीचर के लिए फ्लैश का उपयोग करता है। यदि आप फ्लैश प्लगइन को अक्षम करते हैं, तो यह अच्छा ओले 'फ़ेस्ड फ़ाइल इनपुट जोड़ता है। – Sam

0

यह एक input[type=file] को बदलने के लिए संभव नहीं है के रूप में आप की तरह है, यह एक विशुद्ध रूप से मूल रूप तत्व है।

इसके अलावा आप सुरक्षा कारणों से फ़ाइल का मार्ग प्राप्त नहीं कर पाएंगे। पुराने आईई संस्करण पथ दिखाते हैं लेकिन यह अब नए संस्करणों के साथ मामला नहीं है और आप सर्वर-साइड पर रास्ते के साथ कुछ भी करने में सक्षम नहीं होंगे।

हालांकि शैली के लिए कुछ तरीकों के होते हैं:

0

plupload पर एक नज़र डालें, मैं इसे कई बार उपयोग किया है फ़ाइल अपलोड संभाल करने ।

1

चेक इस बेला: http://jsfiddle.net/A4BS7/1/

नोट:

एक) यह पुराने ब्राउज़र (मुख्य रूप से आईई) उस फ़ाइल इनपुट पर परिवर्तन घटना आग नहीं है पर अच्छी तरह से काम न करें।

बी) अपलोड के लिए अपलोड करने के लिए अपलोड करने के लिए, आपको अपने फॉर्म में <input type="file"> तत्व शामिल करना होगा। चयनित तत्व को सर्वोत्तम रूप से प्रदर्शित करने के लिए टेक्स्ट तत्व का उपयोग किया जा सकता है।

+0

अपलोड किए गए फ़ाइल मान को किसी अन्य फ़ाइल मान में कैसे जोड़ना है? – JohnB

4
<input type="file" style="display:none;" id="inputfile"/> 
<a href="javascript:document.getElementById('inputfile').click(); ">try this</a> 

इसे आजमाएं। मुझे लगता है कि यह उपयोगी है .. :)

+0

हालांकि कोड की सराहना की जाती है, यह हमेशा एक साथ स्पष्टीकरण होना चाहिए। यह लंबा नहीं होना चाहिए, एक पंक्ति ठीक है, लेकिन इसकी आवश्यकता है। मैं यहां एक मॉडरेशन कतार से आया हूं क्योंकि यह स्वचालित रूप से ध्वजांकित किया गया था। उच्च गुणवत्ता के जवाब रखने से इसे रोकने में मदद मिलेगी। – Veedrac

+0

सरल और शानदार! – Sllouyssgort

+0

धन्यवाद @Sllouyssgort –

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