HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>文件上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<!-- 演示2错误 (如果写在下面,不生效了)-->
<!-- <input type="hidden" name="MAX_FILE_SIZE" value='10'> -->
<input type="file" name="abcfile" /><br/>
<input type="submit" value="上传" />
</form>
</body>
</html>
PHP
<?php
var_dump($_FILES);
// var_dump($_FILES['abcfile']);
// 1. 判断是否有错误号(查手册is_uploaded_file)
if($_FILES['abcfile']['error']){
switch ($_FILES['abcfile']['error']) {
case 1:
$str = '上传的文件超过了php.ini中 upload_max_filesize 选项限制的值';
break;
case 2:
$str = '上传文件的大小超过了HTML表单中 MAX_FILE_SIZE 选项指定的值';
break;
case 3:
$str = '文件只有部分被上传';
break;
case 4:
$str = '没有文件被上传';
break;
case 6:
$str = '找不到临时文件夹';
break;
case 7:
$str = '文件写入失败';
break;
}
echo $str;
exit;
}
// 2.判断你准许的文件的大小
if($_FILES['abcfile']['size'] > (pow(1024, 2) * 2)){
echo '文件大小超过了准许的大小';
}
// 3.判断你准许的mime类型,文件后缀名
$allowMime = ['image/png', 'image/jpg','image/jpeg', 'image/gif', 'image/wbmp'];
$allowSubFix = ['png', 'jpg', 'jpeg', 'gif', 'wamp'];
$info = pathinfo($_FILES['abcfile']['name']);
// var_dump($info);
$subFix = $info['extension'];
if(!in_array($subFix, $allowSubFix)){
exit('不准许的文件后缀');
}
if(!in_array($_FILES['abcfile']['type'], $allowMime)){
exit('不准许的mime类型');
}
// 4.拼接上传路径
$path = 'upload/';
if(!file_exists($path)){
mkdir($path);
}
// 5.文件名随机
$name = uniqid() . '.' . $subFix;
// 6.判断是否是上传文件
if(is_uploaded_file($_FILES['abcfile']['tmp_name'])){
if(move_uploaded_file($_FILES['abcfile']['tmp_name'], $path.$name)){
echo '上传成功';
}else{
echo '文件移动失败';
}
}else{
echo '不是上传文件';
exit;
}