<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>接收图片</title>
</head>
<body>
<form action="3-2.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="999999"/>
 账号: <input type="text" name="num" /><br/>
 密码: <input type="password" name="pas"/><br/>
确认密码:<input type="password" name="p_new"><br/>
上传文件:<input type="file" name="pic"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
var_dump($_FILES);
运行结果:
F:\PHP\www\vbs\school\3-2.php:2:
array (size=1)
'pic' =>
array (size=5)
'name' => string '123.JPG' (length=7)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'F:\PHP\tmp\php2B81.tmp' (length=22)
'error' => int 0
'size' => int 53122
<?php
//判断文件是否上传
if ($_FILES["pic"]["error"] !== 0){
switch ($_FILES["pic"]["error"]){
case 1;
echo "超出 php.ini 的最大值";
die();
break;
case 2;
echo "超出表单所允许的最大值";
die();
break;
case 3;
echo "文件只有部分被上传";
die();
break;
case 4;
echo "文件未上传";
die();
break;
case 6;
echo "未找到临时目录";
die();
break;
case 7;
echo "写入文件失败";
die();
break;
}
}
//获取文件的名字和后缀名
$name = $_FILES["pic"]["name"];
$a = pathinfo($name); // dirname(目录名) basename(基本名) extension(扩展后缀名) filename(文件名:基本名+后缀名)
$extension_name = $a["extension"]; //获取后缀名
$filename = $a["filename"]; //获取文件名
$new_name = md5(time().rand(0,9999999)).".".$extension_name; //给上传文件更改名字,防止重名被覆盖
//上传获取文件的类型
$tpye = $_FILES["pic"]["type"];
$types = ["image/jpeg","image/png","image/gif"]; //创建一个新数组,存放用户可以上传的文件类型
if (!in_array($tpye,$types)){ //检查 参数2 是否包含 参数1
echo "上传的文件类型不符合要求";
die();
}
//判断上传文件大小
if ($_FILES["pic"]["size"] > "99999999"){
echo "单个文件上传过大";
die();
}
//判断文件是否由表单上传
$tmp = $_FILES["pic"]["tmp_name"];
if (!is_uploaded_file($tmp)){ // is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的
echo "请正确上传文件";
die();
}
//移动文件
$dir = "F:/test_photo/".$new_name;
if (move_uploaded_file($tmp,$dir)){ // move_uploaded_file() 将上传的文件移动到新位置
echo "上传成功";
}else{
echo "上传失败";
}