2009-07-03 69 views

回答

2

也許你可以使用下面的代碼來檢查文件是否是圖像。

public bool IsFileAnImage(string filePath) 
{ 
    try 
    { 
     Image image = Image.FromFile(filePath)) 
    } 
    catch 
    { 
     return false; 
    } 
    finally 
    { 
     image.Dispose(); 
    } 

    return true; 
} 
-2

一個簡單的方法是查看文件的擴展名。

+1

除了擴展名之外,它並沒有告訴你任何東西,而且是網站錯誤地允許上載可執行文件的常見方式。 – NotMe 2009-07-03 18:16:57

0

這可以通過使用下面的函數來完成與GD服務器端:((modified version of this)

function imageFileTypeFromBinary($file) 
{ 

    $binary = file_get_contents($file); 

    if (
     !preg_match(
      '/\A(?:(\xff\xd8\xff)|(GIF8[79]a)|(\x89PNG\x0d\x0a)|(BM)|(\x49\x49(\x2a\x00|\x00\x4a))|(FORM.{4}ILBM))/', 
      $binary, $hits 
     ) 
    ) { 
     return 'application/octet-stream'; 
      //return false; 

    } 
    static $type = array (
     1 => '.jpeg', 
     2 => '.gif', 
     3 => '.png', 
     4 => '.x-windows-bmp', 
     5 => '.tiff', 
     6 => '.x-ilbm', 
    ); 
    return $type[count($hits) - 1]; 
    // or simply return true 
    // return true; 
} 

你應該願意,你可以把它返回true或false作爲反對MIME類型

相關問題