多文件上传实现
程序员文章站
2022-03-24 09:37:24
...
-
界面文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>多文件上传</title>
</head>
<body>
<div>
<h2>多文件上传</h2>
<form action="save.php" method="post" enctype="multipart/form-data">
<input type="file" name="file[]" multiple><button>上传</button>
</form>
</div>
</body>
</html>
-
save.php 文件
<?php
require_once "function.php";
$upfiles=uploadFile($_FILES['file'],['jpg','gif','png']);
// var_dump($_FILES['file']);
foreach($upfiles as $f){
$img='<div><img src="'.$f.'" alt=""></div>';
echo $img;
}
?>
- 上传函数文件:function.php
<?php
/**
* $file, 上传文件$_FILES
* $filetypes, 文件扩展名数组,全部小写,如['jpg','gif']
* $des,保存位置
*/
function uploadFile($file,$filetypes,$des='./storage'){
// 系统的目录,要有权限才能更改,添加、删除
if(!file_exists($des)){
mkdir($des,0770,true);
chmod($des,0770);
}
if(!empty($file)){
$new_files=[];
$errs=$file['error'];
foreach($errs as $key=> $err){
if($err==0){
$filename=$file['name'][$key];
$ext=array_pop( explode(".",$filename));
$ext=strtolower($ext);
// var_dump($ext);
// exit;
//文件的扩展名是否在数组中
if(in_array($ext,$filetypes)){
// 年月日时分秒 + 随机数
$file_name_new = date('YmdHis',time());
$file_name_new .= rand(1000,9999);
$file_name_new .=".".$ext;
$move_file = move_uploaded_file($file['tmp_name'][$key],$des.'/'.$file_name_new);
if($move_file){
$new_files[]=$des.'/'.$file_name_new;
}
}
}
}
return $new_files;
}else{
return null;
}
}
上一篇: 创建商城项目数据库表
下一篇: css中用什么属性来定义盒的类型