PHP如何实现表单提交时用户上传头像到数据库并读出显示

4 篇文章 0 订阅

register.html(注册页面)

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>注册页面</title>
</head>
<body>
<form action="enteringDb.php" method="post" enctype="multipart/form-data">
    <table border="1">
        <tr><th colspan="2">注册页面</th></tr>
        <tr><td>用户名</td><td><input type="text" name="name" size="30" maxlength="10"/></td></tr>
        <tr><td>请上传用户头像</td><td><input type="file" name="file" id="file"/></td></tr>
        <tr><td>
            <input type="submit" name="submit" value="提交"/>
            <input type="reset" value="重置"/>
        </td></tr>
    </table>
</form>
</body>
</html>



enteringDb.php(读入到数据库)

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>读入数据库</title>
</head>
<body>
<?php
function connectDb()
{
    $link = mysqli_connect("localhost", "root", "");
    if ($link) {
        //echo "数据库连接成功!".'<br/>';
        mysqli_select_db($link, 'mydb');//选择要访问的数据库
        mysqli_query($link, "SET NAMES 'utf8'");//在选择数据库表前,防止中文在浏览器中查看乱码


    } else {
        echo mysqli_error($link);
    }
    return $link;
}


$link = connectDb();

//上传头像处理
//限制上传.gif 或 .jpeg 类型图片并小于 200 kb
if ((($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg")
        || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 200000)) {
    if ($_FILES["file"]["error"] > 0) {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    } else {
        move_uploaded_file($_FILES["file"]["tmp_name"],
            "F:\\xampp\htdocs\mydb02\image/" . $_FILES["file"]["name"]);

        $icon_tem = "image/" . $_FILES["file"]["name"];
        $icon_arr = array("$icon_tem");
        $icon = implode($icon_arr);

        $name = $_POST['name'];

        mysqli_query($link,"INSERT INTO users (icon,name) VALUES ('$icon','$name')");
    }
}
?>
</body>
</html>

result.php(从数据库读出,显示页面)

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>从数据库读出</title>
</head>
<body>
<?php
function connectDb()
{
    $link = mysqli_connect("localhost", "root", "");
    if ($link) {
        //echo "数据库连接成功!".'<br/>';
        mysqli_select_db($link, 'mydb');//选择要访问的数据库
        mysqli_query($link, "SET NAMES 'utf8'");//在选择数据库表前,防止中文在浏览器中查看乱码


    } else {
        echo mysqli_error($link);
    }
    return $link;
}


$link = connectDb();
$result = mysqli_query($link, "SELECT * FROM users");
$dataCount = mysqli_num_rows($result);//返回指定数据库表中数据的行数

echo "<table style=' text-align: center' border='2'>
        <tr><th>头像</th><th>用户名</th></tr>";
for ($i = 0; $i < $dataCount; $i++) {
    $result_arr = mysqli_fetch_assoc($result);//返回表中每条数据的具体内容
    $icon=$result_arr['icon'];
    $name = $result_arr['name'];
    echo "<tr>"?>
    <td><img src='<?php echo $icon ?>' height="60px" width="60px" border="1px solid red"></td>
    <?php echo "<td>$name</td></tr>";
}
echo "</table>";
?>
</body>
</html>

效果图:















  • 1
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值