奇怪的图像php验证
我有一个图像验证脚本。例如,对于500 kb或1.5 mb的图像可以正常工作,但如果我尝试使用4mb或6 mb的图像,则会给出错误无效的格式,而不是“大尺寸”。为什么?奇怪的图像php验证,php,validation,Php,Validation,我有一个图像验证脚本。例如,对于500 kb或1.5 mb的图像可以正常工作,但如果我尝试使用4mb或6 mb的图像,则会给出错误无效的格式,而不是“大尺寸”。为什么? $imageData=@getimagesize($\u文件[“用户文件”][“tmp\u名称]); if($imageData==FALSE | |!($imageData[2]==IMAGETYPE_GIF | | |$imageData[2]==IMAGETYPE_JPEG | |$imageData[2]==IMAGET
$imageData=@getimagesize($\u文件[“用户文件”][“tmp\u名称]);
if($imageData==FALSE | |!($imageData[2]==IMAGETYPE_GIF | | |$imageData[2]==IMAGETYPE_JPEG | |$imageData[2]==IMAGETYPE_PNG)){
回显“无效格式” ”;
模具();
}
否则{
如果($_文件[“用户文件”][“大小”]>=2000000){
回声“大的尺寸” ”;
模具();
}
否则{
//糠秕
}
谢谢使用$\u文件['size']…getimagesize对于大型图像非常慢您没有检查文件上载是否成功。PHP有一个适用于上载文件的内存限制,您的“大型”图像很可能超过该限制。您应该像这样检查上载:
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) {
... uploaded ok ...
} else
echo "File upload failed on 'userfile' with error: " . $_FILES['userfile']['error'];
}
您可能还需要检查您的post_max_大小并在php.ini中上载_max_文件大小。如果您尝试上载的文件太大,则我相信将不会填充_文件数组。什么是
@getimagesize
呢?
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) {
... uploaded ok ...
} else
echo "File upload failed on 'userfile' with error: " . $_FILES['userfile']['error'];
}