php post上传文件,如果有多个用户上传,只能1个1个排队上传,能否同时并行多个用户同时上传文件?
2条回答 默认 最新
- ilmss 2022-02-11 09:38关注
给你实现一个:
前端代码:<!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>"; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求指导ADS低噪放设计
- ¥15 CARSIM前车变道设置
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存