要上传4个图片到指定目录中,且将图片路径和其他表单元素写入mysql(要求务必对文件重命名)

2024-11-15 22:54:08
推荐回答(1个)
回答1:

新建upload.php,贴代码。

哪不明白在追问吧
$upfile = $_FILES["upimage"];
$typelist = array("image/jpeg","image/pjpeg","image/gif","image/png"); //允许的类型
$path = "./upload/"; //设置保存路径
//判断上传是否有错误
foreach($upfile['name'] as $k=>$v){
if($upfile['error'][$k]!=0){
switch($upfile["error"]){
case 1:
$info="上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
break;
case 2:
$info="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
break;
case 3:
$info="文件只有部分被上传";
break;
case 4:
$info="没有文件被上传";
break;
case 6:
$info="找不到临时文件夹";
break;
case 7:
$info="文件写入失败";
break;
}
die("上传错误".$info);
}
//类型过滤
if(!in_array($upfile["type"][$k],$typelist)){ //用in_array检查type里有没有$typelist
die("不允许上传该类型文件");
}
//检查文件大小,设置的是字节
if($upfile["size"][$k]>888888){
die("file max");
}
//处理上传文件名
do{
//随机生成文件名,后面是pathinfo返回$upfile['name']路径/文件名,用PATHINFO_EXTINSION只保存文件后缀
$new = date("Ymdhis").rand(1000,9999).".".pathinfo($upfile["name"][$ks],PATHINFO_EXTENSION);
}while(file_exists(trim($path,"/")."/".$new)); //如果文件名存在
//5. 执行文件上传(移动上传的文件)
//判断是否是上传文件
if(is_uploaded_file($upfile["tmp_name"][$k])){
if(move_uploaded_file($upfile["tmp_name"][$k],trim($path,"/")."/".$new)){
echo "文件上传成功";
echo "";
}else{
echo "no";
}
}else{
echo "不是上传文件";
}
}