2014-03-04 104 views
0

這是怎麼工作檢查文件類型上傳

if($_FILES['SelectedFile']['type'] != 'image/png' or 'image/jpg' or 'image/gif' || 'image/jpeg'){ 
    outputJSON('Unsupported filetype uploaded.'); 
} 

我的文件是something.PNG和它不一樣,如果上述聲明通過。我將代碼更改爲'image/PNG',因爲它可能是大寫問題,但事實並非如此。我想知道爲什麼。

編輯

var_dump($_FILES['SelectedFile']['type']) 

array(5) { ["name"]=> string(11) "Capture.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(24) "C:\xampp\tmp\phpE58A.tmp" ["error"]=> int(0) ["size"]=> int(7818) } 
+0

'var_dump($ _ FILES ['SelectedFile'])'show? –

+0

@JohnConde [陣列(5){ [ 「名稱」] => 串(11) 「Capture.png」 [ 「型」] => 串(9) 「圖像/ PNG」 [ 「tmp_name的值」 ] => 串(24) 「C:\ XAMPP \ TMP \ phpE58A.tmp」 [ 「錯誤」] => INT(O) [ 「大小」] => INT(7818) } – user3346088

回答

0

試試這個:

$haystack = array("image/png","image/jpg","image/jpeg","image/gif"); 
if(!in_array(strtolower($_FILES['SelectedFile']['type']), $haystack){ 
    outputJSON('Unsupported filetype uploaded.'); 
} 
0

你的表達是不正確,應該是:

$type = $_FILES['SelectedFile']['type']; 
if ($type != 'image/png' && $type != 'image/jpg' && $type != 'image/gif' && $type != 'image/jpeg') { 
    outputJSON('Unsupported filetype/uploaded'); 
} 

或者編程語言不分發像它在nat中那樣烏拉爾語言。