1. 单文件上传与多文件上传
单文件上传
<?php
if(isset($_FILES['my_pic'])){
extract($_FILES['my_pic']);
if($error>0){
$tips = '<span style="color:red">上传失败:</span>';
switch($error){
case 1:
$tips .='上传的文件超过限制值';
break;
case 2:
$tips .='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';
break;
case 3:
$tips .='文件只有部分被上传。';
break;
case 4:
$tips .='没有文件被上传';
break;
case 6:
$tips .='找不到临时文件夹';
break;
case 7:
$tips .='文件写入失败';
break;
}
echo "<p>$tips</p>";
}else{
//success
//判断是否通过表单上传is_upload_file
if(is_uploaded_file($tmp_name)){
//设置上传文件类型白名单
$allow = ['jpg','jpeg','png','gif'];
//获取文件扩展名
$ext = pathinfo($name)['extension'];
//判断扩展名是否在白名单
if(in_array($ext,$allow)){
$path = 'uploads/';
$dest = $path . time() . '.'.$ext;
if(move_uploaded_file($tmp_name,$dest)){
echo '<p style=color:green>上传成功</p>';
echo "<img src='$dest' alt='' width='200px'>";
}else{
echo '<p style=color:red>上传失败</p>';
}
}else{
echo '<p style=color:red>非法扩展名</p>';
}
}else{
echo '<p style=color:red>非法上传方式</p>';
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>单文件上传</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>单文件上传</legend>
<input type="file" name="my_pic" id="" />
<button>上传</button>
</fieldset>
</form>
</body>
</html>
多文件上传
<?php
if(isset($_FILES['my_pic'])){
foreach($_FILES['my_pic']['error'] as $key=>$value){
$tmp_name = $_FILES['my_pic']['tmp_name'][$key];
$path = 'uploads/' . time() .$key. '.' . pathinfo($_FILES['my_pic']['name'][$key])['extension'];
if(move_uploaded_file($tmp_name,$path)){
echo '<p style=color:green>上传成功</p>';
echo "<img src='$path' alt='' width='200px'>";
}else{
echo '<p style=color:red>上传失败</p>';
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>多文件上传</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>单文件上传</legend>
<input type="file" name="my_pic[]" id="" multiple/>
<button>上传</button>
</fieldset>
</form>
</body>
</html>
2. 简单分页操作,分页所需参数的意思
分页数据查询
<?php
$db = new PDO('mysql:host=127.0.0.1;dbname=statt;port=3306;charset=utf8','root','root');
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
// var_dump($db);
//1.当前页
$page = $_GET['p'] ?? 1;
//2.每页显示数
$num = 10;
//3.总记录数
$sql = 'SELECT COUNT(`id`) AS total FROM `user`';
$statt = $db->prepare($sql);
$statt->execute();
//将某一列值与变量绑定
$statt->bindColumn('total',$total);
$statt->fetch();
// echo '总记录数' . $total . '<br>';
//4.总页数
$pages = ceil($total/$num);
// echo '总页数' . $pages;
//5.偏移量(每页开始索引)
$offset = ($page-1) * $num;
// echo '偏移量' . $offset;
//6.分页数据
$sql = "SELECT * FROM `user` LIMIT $offset, $num";
$statt = $db->prepare($sql);
$statt->execute();
$users = $statt->fetchAll();
//遍历
if(count($users) === 0){
echo '查询结果为空';
}else{
foreach($users as $value){
// var_dump($value);
}
}
分页数据展示
<?php require 'page.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面展示分页数据</title>
<style>
table {
width: 400px;
border-collapse: collapse;
text-align: center;
}
table th,
table td {
border: 1px solid;
padding: 5px;
}
table thead {
background-color: lightcyan;
}
table caption {
font-size: larger;
margin-bottom: 8px;
}
p>a {
text-decoration: none;
color: #555;
border: 1px solid;
padding: 5px 10px;
margin: 10px 2px;
}
.active {
background-color: seagreen;
color: white;
border: 1px solid seagreen;
}
</style>
</head>
<body>
<table>
<caption>员工信息表</caption>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>邮箱</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $value): extract($value)?>
<tr>
<td><?= $id ?></td>
<td><?= $name ?></td>
<td><?= $sex ?></td>
<td><?= $email ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<p>
<?php for($i = 1; $i<=$pages; $i++): ?>
<?php
$url = $_SERVER['PHP_SELF'] . '?p=' .$i;
$active = $i == $_GET['p'] ? 'active' : null;
?>
<a href="<?= $url ?>" class="<?= $active ?>"><?= $i ?></a>
<?php endfor ?>
</p>
</body>
</html>