PHP多文件上传脚本不起作用

时间:2012-09-24 11:02:32

标签: php file-upload

这是多个upload..i的html标记想要对它进行验证.. 1)检查文件是否为5 MB 2)检查是否是jpg,gif only image file

<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}")

}

3 个答案:

答案 0 :(得分:0)

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

大小可以在$ _FILES数组中找到(大小不足),例如: $ _FILES [ '文件'] [ '尺寸'] [$键]

答案 1 :(得分: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';

}

答案 2 :(得分:0)

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

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