我正在阅读php.net link上的文档,并出现在以下行中:
$ _ FILES [ 'userfile的'] [ '类型']
The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however NOT checked on the PHP side and therefore don't take its value for granted.
那么如何验证文件是否具有适当的mime类型以防止用户将可能有害的文件上传到服务器;或者在代码执行服务器端导致错误(因为我可能会尝试在不是jpeg图像的文件上使用仅jpeg函数)?
提前致谢
答案 0 :(得分:1)
function getMimeType()
{
$finfo = new finfo(FILEINFO_MIME);
$type = $finfo->file($_FILES['field_name']['tmp_name']);//change the field_name
$mime = substr($type, 0, strpos($type, ';'));
return $mime;
}
function isValidImage()
{
$mime = getMimeType();
if(stristr($mime,'image'))
return true;
else
return false;
}
$res=isValidImage();
试试这个,它也会检查mime。
答案 1 :(得分:0)
您可以使用finfo_file
找出PHP认为该文件的类型。但是,我认为这也不能依赖。我相信它使用启发式扫描,它不会扫描整个文件以确保它完全有效。例如。如果它以<html>
开头,它会说它是text/html
,它不会解析整个事情以确保它是正确的。