der 3. Wert, der von getimagesize zurückgegeben wird, ist ja eine Zahl, und nicht .gif, .jpg etc. Demnach haut das mit dem $filtaype_array auch nich hin (wenn $size[2] z.B. 1 is, ist der Rückgabewert "2")
Probier also mal statt
if($filetype_array($size[2]) ==
einfach direkt
if($size[2]...