0

这是用于多次上传的 html 标记..我想对其执行验证.. 1)检查文件是否为 5 mb 2)检查它是否为 jpg、gif 图像文件

<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="file[]" multiple="multiple">
<input type="submit" value="upload">
</form>

这是php代码

if(!empty($_FILES['file'])){        
    foreach($_FILES['file']['name'] as $key => $name)
    {           
                 if($_FILES['file']['error'][$key] == 0 && move_uploaded_file($_FILES['file']['tmp_name'][$key], "images/{$name}")){

            $uploaded[] = $name;
                 }
    }       
    print_r($uploaded);     
}

现在它只是在没有任何验证的情况下上传文件......我无法弄清楚要检查大小并检查它的图像类型是否只有......请 php 专家帮助我

当我尝试使用它时,它会直接上传

  if($_FILES['file']['size'][$key] > 5000){
                     echo 'file must be under 5 mb';
                   }else{
                     move_uploaded_file($_FILES['file']['tmp_name'][$key], "images/{$name}")

}

4

3 回答 3

0

您可以使用:http ://us2.php.net/manual/en/function.exif-imagetype.php来检查图像的类型

大小可以在 $_FILES 数组中找到(小于大小),例如 $_FILES['file']['size'][$key]

于 2012-09-24T11:06:50.857 回答
0
foreach(...) {
   $fileType = explode(".", $name);
   $fileType = strtolower("." . $fileType[count($fileType)-1]);

   if(!in_array($fileType, array('.gif','.jpg','.jpeg')))
       echo 'Incorrect file type';
   if($_FILES['file']['size'][$key] > 5000)
       echo 'Maximum alowed size is 5MB';

}
于 2012-09-24T11:07:37.860 回答
0

它正在上传文件,因为您已经编写了用于上传的代码

if($_FILES['file']['error'][$key] == 0 && move_uploaded_file($_FILES['file']['tmp_name'][$key], "images/{$name}"))
于 2012-09-24T11:08:10.833 回答