PHP多文件上传

前端页面代码:

<form action="./upload.php" method="post" 
    enctype="multipart/form-data">
    请选择上传文件:<br>
    <input type="file" name="upload[]"><br>
    <input type="file" name="upload[]"><br>
    <input type="file" name="upload[]"><br>
    <input type="submit" value="上传">
    <input type="hidden" name='token' value='token'>
</form>
图片.png
图片.png

upload.php代码如下:

//判断表单是否合法提交
if(isset($_POST['token'])&&$_POST['token']=='token'){
    $arr=$_FILES['upload'];
    $i=0;
    while(!($arr['name'][$i]=="")){
        //1、判断error值是否不为零   
        if(!$arr['error'][$i]==0){
            echo "上传出错!";
            header('refresh:3;url=./test2.php');
            die();
        }
        //2、判断判断文件大小是否超过2m
        if($arr['size'][$i]>2*1024*1024){
            echo "上传文件不得超过2M!";
            header('refresh:3;url=./test2.php');
            die();
        }
        //获取文件拓展名
        $ext=pathinfo($arr['name'][$i],PATHINFO_EXTENSION);
        //3、判断上传文件的拓展名是否正确
        //若要上传其它类型文件,将其类型加入数组即可
        $arr_imgext=['jpg','jpeg','png','gif'];
        if(!in_array($ext,$arr_imgext)){
            echo "请上传正确格式的文件!";
            header('refresh:3;url=./test2.php');
            die();
        }   
        //4、判断文件MIME类型
        //注意:经测试,如果更改文件拓展名
        //则$_FILES中mime类型的判断可能会存在不严谨的情况
        // $mime=$arr['type'][$i];
        // $arr_mime=['image/jpeg','image/png','image/gif'];
        // if(!in_array($mime,$arr_mime)){
        //  echo "请上传正确类型的文件!";
        //  header('refresh:3;url=./test2.php');
        //  die();
        // }
        
        //构建临时文件路径和目标文件路径
        $temp_file=$arr['tmp_name'][$i];    
        $uniqid=uniqid('');
        $dst_file="./upload/{$uniqid}.$ext";
        move_uploaded_file($temp_file,$dst_file);
        $i++;
    }
    echo "上传成功!";
    header('refresh:3;url=./test2.php');    
}
else{
    echo "非法操作!";
    header('refresh:3;url=./test2.php');
    die();
}

猜你喜欢

转载自blog.csdn.net/csdn_heshangzhou/article/details/80918753