首页 > 解决方案 > 使用会话在网页上显示存储的数据库图像?

问题描述

嗨我正在尝试使用会话将图像存储到数据库中并且它成功完成但问题是当我上传页面并单击保存按钮时它无法显示在我的网页上再次显示上一张图片但新图片保存到数据库中成功,我想将图片存储在我的文件夹中,编码如下

Html页面编码如下

<form class="form" action="accountsetting.php" method="post" enctype="multipart/form-data">
    <div class="row">
        <div class="col-12 col-sm-auto mb-3">
            <div class="mx-auto" style="width: 140px;">
                <div class="rounded-circle avatar avatar-xl mb-3">
                    <img class="rounded-circle" id="preview_avatar" name="image" src="https://imgbob.com/path/cdn/avatars /zxMvnv1q52hFyNeEGKz0UuPU5fkth5YadkXe3m26S4HODj09An.png"  
width="100" height="100">
                </div>
            </div>
        </div>
        <div class="col d-flex flex-column flex-sm-row justify-content-between mb-3">
            <div class="text-center text-sm-left mb-2 mb-sm-0">
                <h4 class="pt-sm-2 pb-1 mb-0 text-nowrap"><?php echo $_SESSION['user']['fullname']; ?></h4>
                                                                                            <p class="mb-0"><?php echo $_SESSION['user']['username']; ?></p>
                <div class="form-group mb-2 pt-2">
                    <input class='input' type='hidden' name='id' value="<?php echo $_SESSION['user']['id']; ?>" />
                    <input id="avatar" type="file" name="avatar" hidden="" accept="image/png, image/jpeg, image/jpg">
                    <button id="uploadBtn" type="button" class="btn btn-primary btn-file " >
                        <i class="fa fa-camera" aria-hidden="true"></i> &nbsp Upload Avatar
                    </button>
                </div>
                <div class="row">
                    <div class="col d-flex justify-content-end pr-5">
                        <button class="btn btn-primary " type="submit" name="profile">Save Changes</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>

PHP编码如下

$id = "";
if(isset($_POST['profile'])) {
    $id = $_SESSION['user']['id'];
    $file=addslashes(file_get_contents($_FILES["avatar"]["tmp_name"]));
    $query = "UPDATE users SET avatar = '$file' WHERE id = '$id'";
    $query_run = mysqli_query($db,$query);

    if($query_run) {
        echo '<script type = "text/javascript"> alert("image profile upload")</script>';
    } else {
        echo '<script type = "text/javascript"> alert("image profile not upload")</script>';
    }
}

来自 HTML 页面的会话

<?php
include('../functions.php');
if (!isLoggedIn()) {
    $_SESSION['msg'] = "You must log in first";
    header("location: /uploadimg/loginform.php");
}

if (isset($_GET['logout'])) {
    session_destroy();
    unset($_SESSION['user']);
    header("location: /uploadimg/loginform.php");
}
if(isset($_SESSION['success']))
{
    echo $_SESSION['success'];
    unset($_SESSION['success']);
}
if(isset($_SESSION['user']['fullname']))
{

}
?>

来自 PHP 页面的会话

<?php 
session_start();

function isAdmin()
{
    if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin' ) {
        return true;
    }else{
        return false;
    }
}

function isLoggedIn()
{
    if (isset($_SESSION['user'])) {
        return true;
    }else{
        return false;
    }
}

标签: phphtmlformsfile-uploadmysqli

解决方案


推荐阅读