2012-03-21 15 views
21

मेरे पास वह मूल, प्रसिद्ध एकाधिक फ़ाइल अपलोड फ़ॉर्म है। ऐसा ही कुछ ...अपलोड की गई फ़ाइलों की संख्या को सीमित और सीमित करें (HTML फ़ाइल इनपुट)

<input type="file" multiple="multiple" name="something[]" /> 

वहाँ एक रास्ता (बेहतर एक हार्ड कोडित विकल्प) फ़ाइलें है कि उपयोगकर्ता का चयन कर सकते की संख्या को सीमित करने के लिए है? सीमा से मेरा मतलब सख्ती से अवरुद्ध है, न कि संख्या पार होने पर केवल एक चेतावनी नहीं।

अग्रिम धन्यवाद। :)

+0

पर उपलब्ध हैं तुम हमेशा PHP कोड में यह ब्लॉक कर सकते हैं, लेकिन वहाँ पता है कि कैसे अपने इंटरफेस बर्ताव यहाँ पर्याप्त सूचना नहीं है। – Scuzzy

उत्तर

7

आप चयनित फ़ाइलों की संख्या की जांच करने के लिए जावास्क्रिप्ट समाधान लागू कर सकते हैं, जिसका उपयोग आप सर्वर पर अपलोड करने से मना कर सकते हैं। वास्तव में केवल इस समस्या के लिए क्लाइंट-साइड समाधान होने जा रहे हैं, क्योंकि वास्तव में कोई भी उपयोगकर्ता इन फ़ाइलों को आपकी php स्क्रिप्ट पर पोस्ट करने से रोक नहीं रहा है। आप अधिकतम अपलोड आकार सीमा निर्दिष्ट कर सकते हैं, लेकिन यह अपलोड की जा रही फ़ाइलों की संख्या के लिए विशिष्ट नहीं है।

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

एचटीएमएल 5 फ़ाइल एपीआई यहां चयनित फ़ाइलों की गिनती को प्रतिबंधित करने के बारे में पढ़ें: http://php.net/manual/en/ini.core.php

के रूप में सुझाव दिया गया था: http://dev.w3.org/2006/webapi/FileAPI/

यहाँ php.ini डॉक्स जो बताएं कि किस तरह अपलोड पर आकार सीमा बनाने के लिए है टिप्पणियों में, जांचें: http://php.net/manual/en/ini.core.php#ini.max-file-uploads

+8

'क्योंकि वास्तव में कोई भी उपयोगकर्ता इन फ़ाइलों को आपकी php स्क्रिप्ट पर पोस्ट करने से रोक नहीं रहा है: वास्तव में, वहां है। 'Php.ini' में, आप उस नंबर को 'max_file_uploads' विकल्प (http://www.php.net/manual/en/ini.core.php#ini.max-file-uploads) से सीमित कर सकते हैं – marvin

+2

@marvin: इसे उत्तर के रूप में जोड़ें – zerkms

+1

@marvin मैंने माना था "फ़ाइलों को अपलोड करने की अनुमति की अधिकतम संख्या _simultaneously_" का अर्थ है विभिन्न फ़ाइलों को अपलोड करने के साथ-साथ एक साथ HTTP कनेक्शन को रोकने की विधि। क्या यह मामला नहीं है? – GoldenNewby

0

कुछ प्लगइन्स इस के साथ सहायता करने लगते हैं, जैसे: Uploadify (flash based)। हालांकि मैंने यह जानने के लिए पर्याप्त नहीं किया है कि वे कितने सीमित हैं, वे अपलोड को सीमित कर सकते हैं या नहीं।

Uploadify Multiple Uploads पर अधिक जानकारी।

7

हम सभी जानते हैं कि एक सरणी first element is stored in 0 th index, 2nd in 1st index......nth in (n-1)th index

अब

में आप नहीं कर सकते count($_FILES['something']) ले जो हमेशा वापस आ जाएगी 5 के बाद से वहाँ सरणी

में 5 चाबियाँ हैं अब सवाल क्या $_FILES['something']['name'][0] शामिल करता है? => पहले फ़ाइल का नाम तो

if(empty($_FILES['something']['name'][0])) 
{ 
    //checking whether a single file uploaded or not 
    //if enters here means no file uploaded 
    //so if you want you may put a check/validation here to make file 
    //upload a must in your website 
} 
if(isset($_FILES['something']['name'][5])) 
{ 
    //checking whether 6 files uploaded or not 
    //so here you can put a check/validation to restrict user from 
    //uploading more than 5 files 
} 
संबंधित मुद्दे