Есть ли способ убедиться, что полученный файл является образом в PHP ? 
  Тестирование для расширения не очень безопасно для меня, так как вы можете загрузить script и изменить его расширение на все, что захотите. 
  Я тоже пытался использовать getimagesize , но может быть что-то более подходящее для этой конкретной проблемы. 
Родной способ получить mimetype:
  Для PHP <5.3 используйте mime_content_type () 
  Для PHP> 5.3 используйте finfo_fopen () 
Альтернативам получения MimeType являются exif_imagetype и getimagesize , но они полагаются на наличие соответствующих библиотек. Кроме того, они, скорее всего, просто вернут изображения mimetypes, а не весь список, указанный в magic.mime .
  Хотя mime_content_type удаляется из PHP5.3, он отлично работает под этой версией.  E_STRICT даже не будет уведомлять об устаревании.  Если вы не хотите беспокоиться о том, что доступно в вашей системе, просто оберните все четыре функции в прокси-метод, который делегирует вызов функции тому, что доступно, например 
 function getMimeType($filename) { $mimetype = false; if(function_exists('finfo_fopen')) { // open with FileInfo } elseif(function_exists('getimagesize')) { // open with GD } elseif(function_exists('exif_imagetype')) { // open with EXIF } elseif(function_exists('mime_content_type')) { $mimetype = mime_content_type($filename); } return $mimetype; } 
Метод getimagesize () должен быть самым определенным способом для определения того, является ли файл изображением:
 if(@is_array(getimagesize($mediapath))){ $image = true; } else { $image = false; } 
потому что это образец getimagesize () :
 Array ( [0] => 800 [1] => 450 [2] => 2 [3] => width="800" height="450" [bits] => 8 [channels] => 3 [mime] => image/jpeg) 
  Использование функции расширения файла и getimagesize для определения того, является ли загруженный файл правильным форматом, является только проверкой начального уровня, и он может просто обходить путем загрузки файла с истинным расширением и некоторым байтом заголовка изображения, но неправильным контентом. 
  для обеспечения безопасности и безопасности вы можете сделать миниатюру / размер (даже с исходными размерами изображения) загруженного изображения и сохранить эту версию вместо загруженной.  Также возможно получить загруженное содержимое файла и искать его для специального символа, такого как <?php чтобы найти файл – это изображение или нет.