Я пытаюсь получить тип изображения в базе данных, но ниже не работает. Как определить, является ли изображение png, jpeg или gif?
if(isset($_POST['submit'])) { $fileType = $_FILES['image']['type']; $tmpname = $_FILES['image']['tmp_name']; $fp = fopen($tmpname,'r'); $data = fread($fp,filesize($tmpname)); $data = addslashes($data); fclose($fp); $update = mysql_query("UPDATE avatar SET image1='$data',type='$fileType' WHERE username='$user'",$this->connect); } else { echo "<form enctype='multipart/form-data' action='http://www.example.com/cp/avatar' method='post'> <div id='afield1' >Upload</div><div id='afield2'><input type='hidden' name='MAX_FILE_SIZE' value='102400' /><input type='file' size='25' name='image' /></div> <div id='asubmit'><input type='submit' name='submit' class='button' value='Save Changes' /></div> </form>"; }
используйте getimagesize () или exif_imagetype ()
// integer - for example: IMAGETYPE_GIF, IMAGETYPE_JPEG etc. $type = exif_imagetype($_FILES['image']['tmp_name']);
а также
$info = getimagesize($_FILES['image']['tmp_name']); $mime = $info['mime']; // mime-type as string for ex. "image/jpeg" etc. $width = $info[0]; // width as integer for ex. 512 $height = $info[1]; // height as integer for ex. 384 $type = $info[2]; // same as exif_imagetype
Имейте в виду, что exif_imagetype
намного быстрее, чем getimagesize
. Проверьте документацию для получения дополнительной информации.