php post上传文件,如果有多个用户上传,只能1个1个排队上传,能否同时并行多个用户同时上传文件?

php post上传文件,如果有多个用户上传,只能1个1个排队上传,能否同时并行多个用户同时上传文件?

给你实现一个:
前端代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文件上传</title>
</head>
<body>

    <form action="upload.php" method="post" enctype="multipart/form-data">
        
        <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
        选择文件1:<input type="file" name="myfile[]"><br>
        选择文件2:<input type="file" name="myfile[]"><br>
        选择文件3:<input type="file" name="myfile[]"><br>
        <input type="submit" value="上传文件">

    </form>

</body>
</html>

后端代码:

<?php

$allowtype = array("gif","png","jpg"); //允许上传的文件格式
$size = 1000000; //设置允许大小1M以内的文件
$path = "./uploads"; //设置上传后保存文件的路径


//判断文件是否可以上传到服务器 $_FILES['myfile'][error]为0表示成功
//循环
for( $i = 0;$i < count($_FILES['myfile']['error']);$i++ ){

    $upfile[$i] = $_FILES['myfile']['name'][$i];

    if($_FILES['myfile']['error'][$i]>0){

        echo "上传错误";
        switch($_FILES['myfile']['error'][$i]){
        
            case 1: die('第'.($i+1).'个文件上传文件大小超出了PHP配置文件中的约定值:upload_max_filesize');
            case 2: die('上传第'.($i+1).'个文件大小超出了表单中的约定值:MAX_FILE_SIZE');
            case 3: die('第'.($i+1).'个文件只被部分上传');
            case 4: die('第'.($i+1).'个文件没有上传');
            default: die('未知错误');
        }
    }



    //判断上传的文件是否为允许的文件类型,通过文件的后缀名
    //array_pop 弹出并返回数组中的最后一个元素,并将array的长度减1
    $hz[$i] = array_pop(explode(".",$_FILES['myfile']['name'][$i]));
    if(!in_array($hz[$i],$allowtype)){

        die("第".($i+1)."个文件后缀是<b>{$hz}</b>,不是允许的文件类型!");
    }

    /*也可通过获取上传文件的MIME类型中的主类型和子类型,来限制文件上传的类型
    list($maintype,$subtype) = explode("/",$_FILES['myfile']['type']);
    if($maintype == "text"){

        die("不能上传文本文件");
    }
    */

    //判断上传的文件是否允许大小
    if($_FILES['myfile']['size'][$i]>$size){

        die("第".($i+1)."个文件超过了允许的<b>{$size}</b>");
    }


    //为了系统安全,同时也为了同名文件不被覆盖,上传后将文件名使用系统定义
    $filename[$i] = date("YmdHis").rand(100,999).".".$hz[$i];


    //判断是否为上传文件
    if(is_uploaded_file($_FILES['myfile']['tmp_name'][$i])){

        if(!move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$path.'/'.$filename[$i])){
        
            die("不能将文件移动到指定目录");
        }
    }else{

        die("上传文件{$_FILES['myfile']['name'][$i]}不是一个合法文件");
    }

    //如果文件上传成功
    $filesize[$i] = $_FILES['myfile']['size'][$i]/1024;
    echo "文件{$upfile[$i]}上传成功,保存在目录{$path}中,文件大小为{$filesize[$i]}KB<br>";
}

朋友,你听说过多线程或多进程吗?