2011-10-28 18 views
1

我正在嘗試獲取數據庫中的圖像類型,但以下操作無效。如何檢測圖像是PNG,JPEG還是GIF?如何在php中獲取圖像類型

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>"; 
} 

回答

9

使用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_imagetypegetimagesize快得多。檢查文檔以獲取更多信息。

+0

讓mime類型使用[mage_type_to_mime_type](http://php.net/manual/en/function.image-type-to-mime-type.php) –