php多文件上传其实和单文件上传差不多,就是加个for循环就好了
废话不多少上代码
html 页面
<html>
<head>
<title>文件上传</title>
<meta charset = "utf-8"/>
</head>
<body>
<form action = "linkUpload.php" method = "post" enctype ="multipart/form-data">
<input type = "file" name = "file[]"/><br/>
<input type = "file" name = "file[]"/><br/>
<input type = "file" name = "file[]"/><br/>
<input type = "submit" value ="提交"/>
</form>
</body>
</html>
封装的多文件的方法(要存到一个新的路径中)
<?php
/*
*封装一个多文件上传
*@prame string $key
*@prame string $path
*@prame int $maxSize
*@prame array $allowMime
*@prame array $type
*@prame bool $isFilename
*@auther wulei
*/
function moreload($key,$path ,$maxSize,$allowMime,$type,$isFilename){
for($i=0;$i<count($_FILES[$key]['name']);$i++){
//判断错误信息
if($_FILES[$key]['error'][$i]){
switch($_FILES[$key]['error'][$i]){
case 1:
$str = "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。";
break;
case 2:
$str = "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值.";
case 3:
$str = ",文件只有部分被上传。 ";
break;
case 4:
$str = "没有文件被上传。";
break;
case 6:
$str = "找不到临时文件夹";
break;
case 7:
$str = "文件写入失败。";
break;
}
return [0,$i,$str];
}
//判断文件大小
if($_FILES[$key]['size'][$i]>$maxSize){
return [0,'文件超过最大限制'];
}
//判断mime类型
if(!in_array($_FILES[$key]['type'][$i],$allowMime)){
return [0,'没有符合的mime类型'];
}
//判断文件的后缀
$info = pathinfo($_FILES[$key]['name'][$i]);
var_dump($info);
$sub = $info['extension'];
if(!in_array($sub,$type)){
return [0,'没有符合的文件名后缀'];
}
//文件名是否为随机
if($isFilename){
$name = uniqid().'.'.$sub;
}else{
$name = $_FILES[$key]['name'][$i];
}
//拼接路径
$newpath = rtrim($path,'/').'/'.date('Y/m/d').'/';
//判断不存在就创建文件
if(!file_exists($newpath)){
mkdir($newpath,0777,true);
}
//判断文件是否上传成功
if(is_uploaded_file($_FILES[$key]['tmp_name'][$i])){
if(move_uploaded_file($_FILES[$key]['tmp_name'][$i],$newpath.$name)){
echo '上传成功';
$arr[] = [1,$newpath.$name];
}else{
return [0,'上传失败'];
}
}else{
return [0,'文件不存在'];
}
}
return $arr;
}
传入到数据库中
<?php
include 'moreUpload.php';
include 'common.php';
$data = moreload('file','image',pow(1024,2)*2,[
'image/png','image/jpeg','image/gif','image/wbmp'
],['png','jpg','jpeg','jpe','pjpeg','gif','wbmp','bmp'],true);
for($i=0;$i<count($data);$i++){
if($data[$i][0]){
$date['img_path'.$i] = $data[$i][1];
}
}
insert($link,'image',$date);