2011-09-05 14 views
7

क्या छवियों को अपलोड करते समय मुझे $_FILES से फ़ाइल प्रकार पर भरोसा है? या मुझे exif_imagetype() के साथ फिर से जांचना है?

उत्तर

6

documentation से:

फ़ाइल की माइम प्रकार, यदि ब्राउज़र इस जानकारी प्रदान की। एक उदाहरण "छवि/gif" होगा। हालांकि इस माइम प्रकार को PHP पक्ष पर चेक नहीं किया गया है और इसलिए इसके मान को मंजूरी नहीं दी जाती है।

+0

सही, धन्यवाद – HappyDeveloper

3

मैं हमेशा वैध छवियों पर जाँच करने के लिए अगले समारोह का उपयोग करें:

function Check_Image($Filename) { 
    if ($Check_Image = @getimagesize($Filename)) { 
     return TRUE; 
    } 
    return FALSE; 
} 
5

कभी कुछ भी है कि बाहर से आता है, विशेष रूप से फ़ाइल अपलोड पर भरोसा!

आकार, स्थान, माइम/प्रकार, extenstion और कुछ भी आप जांच सकते हैं की जांच करें!

+0

लेकिन क्या यह प्रकार बाहर से आता है? या यह php द्वारा कुछ जोड़ा गया है? – HappyDeveloper

+2

ब्राउज़र इसे प्रदान करता है, इस पर भरोसा न करें। –

+0

@ वेस्ले वैन ओपडॉर्प सहमत हैं, यदि आप कर सकते हैं * सामग्री * भी जांचें। – Cheekysoft

2

नहीं, आप इस पर भरोसा नहीं कर सकते क्योंकि this information is provided by the client browser

$_FILES['userfile']['type'] फ़ाइल की माइम प्रकार, यदि ब्राउज़र इस जानकारी प्रदान की। एक उदाहरण "छवि/gif" होगा। हालांकि इस माइम प्रकार को PHP पक्ष पर चेक नहीं किया गया है और इसलिए को इसके मान के लिए नहीं लेते हैं।

4

नहीं, आप $_FILES['userfile']['type'] चर पर भरोसा नहीं कर सकते हैं। इस चर में मौजूद मूल्य जाली जा सकती है। आप अधिक मज़बूती से फ़ाइल प्रकार का पता लगाने के finfo_file उपयोग कर सकते हैं:

$finfo = finfo_open(FILEINFO_MIME_TYPE); // we need mime type 
echo finfo_file($finfo, "/path/to/uploaded/file"); // displays something like image/gif 
finfo_close($finfo); 

इन कार्यों पीएचपी> = 5.3.0 की आवश्यकता है।

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