2010-05-25 9 views
5

मैं एक PHP अपलोड स्क्रिप्ट पर काम कर रहा हूं और मेरी त्रुटि जांच का परीक्षण करते समय, मैंने 17 एमबी टीआईएफएफ फ़ाइल अपलोड करने का प्रयास किया। जब मैं ऐसा करता हूं तो $ _FILES सरणी खाली होती है। लिपि जो काम करने की ज़रूरत है उसके लिए ठीक काम करता है, जो जेपीईजी फाइल अपलोड करना है। मेरा समाधान यह जांचना है कि अपलोड स्क्रिप्ट के साथ जारी रखने से पहले $ _FILES खाली है या नहीं।

क्या कोई बता सकता है कि टीआईएफएफ को अपलोड करने का प्रयास करने पर $ _FILES खाली क्यों है? क्या मेरा समाधान है, यह जांचने के लिए कि $ _FILES खाली है या नहीं, ठीक है?

क्या php.ini में सेटिंग्स के साथ इसका कुछ संबंध है?

बस स्पष्ट करने के लिए

मैं जाँच की गई थी कि $_FILES खाली था का उपयोग कर निम्न:

if(empty($_FILES)) 
{ 
    die('$_FILES is empty.'); 
} 

उत्तर

7

हां, upload_max_filesize अधिकतम अपलोड आकार को नियंत्रित करता है, जिसे टीआईएफएफ फ़ाइल अधिकतर पार हो जाती है। डिफ़ॉल्ट 2 एम है।

echo ini_get("upload_max_filesize"); 

संपादित करें:: आप के साथ परीक्षण कर सकते हैं $ _POST और $ _FILES superglobals "पोस्ट डेटा का आकार post_max_size से अधिक है, तो: वास्तव में, सही कारण अधिक होने की संभावना post_max_size है, जो हमेशा> = upload_max_filesize है खाली हैं। "

+0

धन्यवाद! यह निश्चित रूप से था क्योंकि टीआईएफएफ फ़ाइल का आकार 'upload_max_filesize' और 'post_max_size' दोनों से अधिक हो गया था। –

1

आप अगर $_FILES['file']['error']0 के बराबर है देखने के लिए जाँच करनी चाहिए। यह एक "सफलता" इंगित करता है।

यदि आपकी फ़ाइलें सरणी खाली है, तो यह किसी अन्य समस्या के कारण हो सकती है, जैसे कि एंटीटाइप समेत।

var_dump($_FILES) कर रहे हैं और सामग्री को देखने की कोशिश करें ...

संपादित: मुझे पता है तुम php.ini फ़ाइल में अधिकतम फ़ाइल आकार सेट कर सकते हैं, लेकिन मुझे यकीन है कि अगर यह है कि आप एक खाली फ़ाइलों सरणी दे देंगे नहीं हूँ। मुझे लगता है कि आपको बस एक त्रुटि मिलेगी।

+0

अच्छी सलाह। Var_dump को एक खाली सरणी –

+1

@Col - चूंकि वह एक नौसिखिया की तरह लगता है, इसलिए यह सत्यापित करना था कि सरणी वास्तव में खाली है, और वह गलत अनुक्रमणिका नहीं देख रहा है। –

0

जैसा कि पहले से पोस्ट किया गया है, यह खाली है क्योंकि विफल हुआ। इसके अलावा इस तरह एक ऐसा फ़ॉर्म तत्व के लिए जाँच:

<input type="hidden" name="MAX_FILE_SIZE" value="-maxsizegoeshereinbytes-" /> 

अतिरिक्त यह सुनिश्चित हो (एक बार आप वास्तव में एक सरणी है - 'जाँच त्रुटि कुंजी' पोस्ट करने के लिए जोड़ने, Btw), आप भी आकार की जाँच कर सकते

if($_FILES['file']['size'] > 0) { 

} 
+0

यह सच नहीं है। केवल PHP MAX_FILE_SIZE फ़ील्ड पर ध्यान देता है। –

+0

अद्यतन उत्तर - उस विवरण के लिए धन्यवाद। हालांकि अभी भी लागू है, क्योंकि यह php है। –

+0

आपका उत्तर अभी भी अप्रासंगिक है –