2011-05-22 91 views

回答

2

和getimagesize()返回的MIME類型也 http://php.net/manual/en/function.getimagesize.php

<?php 
//png image called gif 
$image = 'temp.gif'; 
$size = getimagesize($image); 

if (isset($size['mime']) && $size[0]>0 && $size[1]>0) { 
    echo"Content-type: {$size['mime']}"; 
    //outputs Content-type: image/png 
} else { 
    echo"not an image"; 
} 

?> 
3

這裏的另一種方式

<?php 
$info = getimagesize("image.gif"); 
$type = $info['mime']; 
?> 

但它會幫助,如果你可以說你的「安全」和什麼樣的意思到底是什麼操縱你的想法。

1

你總是可以自己掃描文件的魔術字節和不是。我相信在PECL中有一堆方便的funcs,但是由於它們在目標託管上的可用性可能會有所不同,所以您可能希望採取艱難的方式。例如參見本 -

http://www.garykessler.net/library/file_sigs.html

- 文件簽名(或魔法字節,或任何他們現在被稱爲)。您知道要接受哪種文件類型,因此只需掃描傳入文件以獲取一組簽名。

另一個選項是允許PHP運行unix shell並使用帶有相應標誌的file命令來測試您的文件並根據實際文件內容獲取真實的mime類型。