文件上传
前端 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<h2>文件上传</h2>
<form action="demo.php" method="post" enctype="multipart/form-data">
<!-- 一定要设置name属性 对应$_FILES键值 -->
<input type="file" name="my_file">
<button>上传</button>
</body>
</html>
demo.php
<?php
//文件上传
//参数配置
$fileType = ['jpg','png','gif'];
$fileSize = 3145728; //3M
//上传文件夹
$filePath = '/uploads/';
//原始文件名
$fileName = $_FILES['my_file']['name']; //系统定义的
//临时文件名
$tempFile = $_FILES['my_file']['tmp_name']; //系统定义的
//错误判断
$uploadError = $_FILES['my_file']['error'];
if($uploadError > 0){
switch ($uploadError) {
case 1:
case 2:die('上传文件过大');
case 3:die('文件上传不完整');
default:die('未知错误');
}
}
//判断扩展名
$extension = explode('.', $fileName)[1];
if(!in_array($extension,$fileType)){
die('不允许上传'.$extension.'文件');
}
//生成临时文件名不重复
$fileName = date('YmdHis',time()).md5(mt_rand(1,99)).'.'.$extension;
//文件上传
//判断是否是post
if(is_uploaded_file($tempFile)){
if(move_uploaded_file($tempFile, __DIR__.$filePath.$fileName)){
echo "上传成功";
}else{
die('上传失败');
}
}else{
die('非法操作');
}
exit;
总结:文件上传的几个步骤 :创建上传到服务器的文件夹,获取文件的原始文件名,临时文件名,分离出扩展名,做文件类型判断、上传错误判断、判断提交方式、重命名文件防止重名。上传文件原来自己写过,又复习了一遍。