这段时间忙于做学校老师带的一个PHP项目,现在有空把一些知识点总结归纳一下。
1.环境介绍
WAMPSERVER 3.1.9 64bit
Wampserver集成了apache、php、mysql等。
项目使用Apche 2.4.39
Php 7.2.18
Mysql 5.7.29
数据库管理使用Navicat
2.文件上传与下载
upload_max_filesize设置最大上传文件大小
下载文件通过Get拼接下载链接
<a href = "./upload_check.php?f=<?php echo $row['BookName']?>">
upload_check.php内容:
$file_name=$_GET['f'];//需要下载的文件
echo $file_name;
$temp = explode(".", $file_name);
$extension = end($temp);
//$file_name=iconv("utf-8","gb2312","$file_name");
$fp=fopen("../upload/$extension/".$file_name,"r+");//下载文件必须先要将文件打开,写入内存
if(!file_exists("../upload/$extension/".$file_name)){//判断文件是否存在
echo "文件不存在";
exit();
}
$file_size=filesize("../upload/$extension/".$file_name);//判断文件大小
//返回的文件
header("content-type: application/octet-stream");
//按照字节格式返回
header("accept-ranges: bytes");
//返回文件大小
header("accept-length: ".$file_size);
//弹出客户端对话框,对应的文件名
header("content-disposition: attachment; filename=".$file_name);
//防止服务器瞬时压力增大,分段读取
$buffer=1024;
while(!feof($fp)){
$file_data=fread($fp,$buffer);
echo $file_data;
}
//关闭文件
fclose($fp);
上传文件:
表单增加:
enctype="multipart/form-data"
//td内容
<td><label for="file">文件名:</label><input type="file" name="file" id="file"></td>
上传验证:
$allowedExts = array("pdf","pptx");//允许的后缀名
$temp = explode(".", $_FILES["file"]["name"]);
//echo "name:".$_FILES["file"]["name"];
//echo "<br/>";
//echo "type:".$_FILES["file"]["type"];
//echo "<br/>";
//echo "size:".$_FILES["file"]["size"];
//echo "<br/>";
//echo "tmp_name:".$_FILES["file"]["tmp_name"];
//echo "<br/>";
$extension = end($temp); //获取文件后缀名
echo $extension;
if (
//&& ($_FILES["file"]["size"] < 204800) //小于 200 kb
in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
//echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
//echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
//echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
//echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
//echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
//判断上一级目录下的 upload 目录是否存在该文件
//如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists("../upload/$extension/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " 文件已经存在。 ";
}
else
{
//如果 upload 目录不存在该文件则将文件上传到 upload 目录下
move_uploaded_file($_FILES["file"]["tmp_name"], "../upload/$extension/" . $_FILES["file"]["name"]);
echo "文件存储在: " . "../upload/$extension/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "非法的文件格式";
}
if($result3){
echo "<script>alert('增加成功!')</script>";
}
else{
echo "<script>alert('系统繁忙,请稍后再试!')</script>";
}
3.数据库操作
$conn=new mysqli("IP","账号","密码","数据库名");
mysqli_set_charset($conn,"utf8");
$sql="select Student_Name,Student_Pwd from tb_Student where Student_Name='$username' and Student_Pwd='$password'";
$result=$conn->query($sql);//返回结果
$result->num_rows//结果集行数
while ($row =$query->fetch_array() )//循环遍历结果集,$row['列名']
$conn->close();//关闭连接