写一个文件操作案例,要求前后端都要有
前端页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件操作</title>
</head>
<body>
<h2>文件上传</h2>
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="my_file">
<!-- //name值---php全局变量获取的文件名-->
<button style="color: #0C9A9A">上传</button>
</form>
</body>
</html>
后端页面
<?php
if(!isset($_FILES['my_file'])){
echo '<script>alert("请上传文件");</script>';
}
//01.配置上传参数
$fileType = ['doc','docs','txt','pdf'];
$fileSize = 10240000.;
$filePath = '/uploads/';//前后都有斜杠
$fileName = $_FILES['my_file']['name'];//原始文件名
$tempFile = $_FILES['my_file']['tmp_name'];//临时文件名
//02.判断上传情况
$uploadError = $_FILES['my_file']['error'];
if($uploadError>0){
switch ($uploadError){
case 1:
case 2:die('文件太大');//为什么会1,2两种情况,实为一种情况
case 3:die('文件格式有误');//为什么不加break
default:die('未知错误');
}
}
//03.文件扩展名是否支持
$exten_name = explode('.',$fileName)[1];
if(!in_array($exten_name,$fileType)){
die('不允许上传' . $exten_name . '文件类型');
}
//04.生成不可重复的临时文件名--时间并加密处理
$fileName = date('YmdHis',time()).md5(mt_rand(1,99)) . '.' .$exten_name;
//05.文件上传
if(is_uploaded_file($tempFile)){
if(move_uploaded_file($tempFile,__DIR__ . $filePath . $fileName)){
echo '上传成功';
}else{
die('上传失败');
}
}else{
die('非法操作');
}
exit;
效果:
手抄
总结
1.容器的结构:
class Container{
private $instance;
public function bind($instance,$paragm){
}
public function make($instance,$paragms=[]){
}
}
2.CSS—grid栅格布局将界面划分为网格,一般用在二维排布空间(弹性布局在一维布局方面更方便)
3.文件上传的5步:01.配置上传参数,02.判断上传情况,03.文件扩展名是否支持,04.生成不可重复的临时文件名—时间并加密处理,05.文件上传