2010-05-06 5 views
22

क्या फ़ाइल अपलोड लोड को केवल छवियों को दिखाने की अनुमति देना संभव है?FileUpload नियंत्रण में फ़ाइल प्रकार को प्रतिबंधित करने के लिए कैसे करें

हम ब्राउज़ बटन क्लिक करते हैं यह केवल छवियों को दिखाना चाहिए।

+0

आप शो से क्या मतलब है? क्या आपका मतलब अपलोड है? –

+0

@Amgdy - "show" = केवल 'ब्राउज़ करें' बटन पर क्लिक करते समय पॉप अप होने पर वास्तविक फ़ाइल संवाद ब्राउज़र के भीतर किसी निश्चित प्रकार की फ़ाइलों को प्रदर्शित करें। – Jagd

उत्तर

7

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

2

मान लीजिए कि आप केवल छवियों को अपलोड करना चाहते हैं।

आप फ़ाइल के ContentType संपत्ति (अर्थात छवि/gif) देख सकते हैं। सादा <input type="file"> साथ http://www.15seconds.com/issue/061116.htm

+0

सत्यापन के लिए नहीं पूछ रहा है। – anishMarokey

1

, मुझे डर है कि यह ग्राहक पक्ष पर संभव नहीं है हूँ:

एक उदाहरण के लिए यहाँ एक नजर डालें।

हालांकि, इस तरह के रूप में कुछ SWFUpload 3 पार्टी अपलोड करने वाले इस सुविधा प्रदान करता है।

21

मैं इस समस्या के लिए कोई सीधा समाधान नहीं मिला।

यह मेरा वैकल्पिक हल RegularExpressionValidator उपयोग कर रहा है:

<asp:FileUpload ID="fuImportImage" runat="server" /> 
<asp:RegularExpressionValidator ID="regexValidator" runat="server" 
    ControlToValidate="fuImportImage" 
    ErrorMessage="Only JPEG images are allowed" 
    ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)"> 
</asp:RegularExpressionValidator> 
10

आप सख्ती से नहीं फ़ाइल प्रकार सीमित कर सकते हैं, लेकिन ब्राउज़र इसका समर्थन करता है अगर तुम पैदा कर सकता है इसे शुरू में फ़ाइल का सिर्फ एक खास प्रकार को दिखाने के लिए:

<form method="post" action="blahblah.blah"> 
    <input type="file" name="image" id="image" accept="image/png, image/jpeg" /> 
</form> 
3
//VALIDATE FILE EXTENTION 
var _validFileFlag; 
function fValidFileExt(vfilePath){ 
    var vFileName=vfilePath.split('\\').pop(); 
    var vFileExt=vfileName.split('.').pop(); 
    if(vFileExt.toUpperCase()=="JPEG" || vFileExt.toUpperCase()=="JPG"){ 
    _validFileFlag = true; 
    } 
    _validFileFlag = false; 
} 

<asp:FileUpload ID="FileUpload1" onchange="fValidFileExt(this.value);" runat="server" /> 

जाँच '_validFileFlag' जबकि बचत डेटा/अपलोड ..

33

2015 में, इनपुट विशेषता स्वीकार समर्थन webbrowsers है, तो आप ऐसा कर सकते हैं:

<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" /> 
+5

यह स्वीकार्य उत्तर होना चाहिए। – mbomb007

+5

यह अभी भी एक उपयोगकर्ता को ऐसी फ़ाइल अपलोड करने की अनुमति देगा जो उन एक्सटेंशन में से किसी एक का उपयोग नहीं करता है – jtate

+0

@jtate प्रश्न * केवल * छवियों तक ही सीमित है। किसी को अवांछित अपलोड करने की कोशिश करने वाले किसी को पकड़ने के लिए, आपको हमेशा सर्वर की तरफ अपलोड (और कोई भी उपयोगकर्ता इनपुट) सत्यापित करना चाहिए। प्रयोक्ता स्वीकार्य सूची में किसी अवांछित फ़ाइल के विस्तार का नाम बदल सकता है। इसलिए आपको फ़ाइल अपलोड में स्वीकृति सूची से उपयोगकर्ता को सरल सहायता के रूप में संपर्क करना चाहिए और कम से कम बैक एंड पर मान्य होना चाहिए। –

1

उपयोग विशेषता को स्वीकार नीचे की तरह फ़ाइल ब्राउज़र में केवल छवियों को दिखाने के लिए -

<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" /> 

एएसपी के साथ प्रमाणीकरण संदेश के साथ चयनित फ़ाइल प्रकार को मान्य करने के लिए RegularExpressionValidator.Nnets।

<asp:RegularExpressionValidator ID="RegExValFileUploadFileType" runat="server" 
         ControlToValidate="FileUploadFileType" 
         ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True" 
         Font-Size="Medium" 
         ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator> 
संबंधित मुद्दे

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