2009-07-03 41 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类型

相关问题