PHP上传与mysql返回处理

这段时间忙于做学校老师带的一个PHP项目,现在有空把一些知识点总结归纳一下。

1.环境介绍

WAMPSERVER 3.1.9 64bit
Wampserver集成了apache、php、mysql等。
项目使用Apche 2.4.39
Php 7.2.18
Mysql 5.7.29
PHP上传与mysql返回处理
数据库管理使用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();//关闭连接
上一篇:【Swift】UNNotificationServiceExtension


下一篇:[转]UiPath Installing the Firefox Extension