从数据库中检索图像并更新图像或上载另一个文件

时间:2019-02-18 23:01:52

标签: php mysql image

我有一个上传功能,将图像上传到数据库中,然后我想回显图像,但是问题是如果我更新图像,它将不会显示,但是如果是第一次上传,则图像将显示在这里我如何上传图片

   include('phpqrcode/qrlib.php'); 
//start of register function
if (isset($_POST['student-registration'])) {

    // get image - student picture
    $check = getimagesize($_FILES["image"]["tmp_name"]);
    if($check !== false){
        $image = $_FILES['image']['tmp_name'];
        $imgContent = addslashes(file_get_contents($image));
        }
    else{
        array_push($errors, "Please select an image to upload");
    }

这是我回显图像的方式,请注意,我在不同的文件中回显图像,其中包括上载功能所在的文件

<?php   echo '<img src="data:image/jpeg;base64,'.base64_encode($image).'" style ="width:200px; height:200px;"/>'; ?>


<?php 

我的图片只有一个数据字段,在用户信息表中称为图片

这是我从数据库表中提取数组的方式

 $UserID = $_POST['UserID'];

// mysql search query
$query = "SELECT * FROM userinfo WHERE UserID = '$UserID' LIMIT 1";
$result = mysqli_query($db, $query);

// if code exist 
// show data in inputs

if(mysqli_num_rows( $result) > 0)
{
  while ($row = mysqli_fetch_array($result))
  {
    $UserType= $row['UserType'];
    if ($UserType != "Student")
    {
        echo '<span style="color:#FF0000;text-align:center;">Oppss... Student ID not FOUND!</span>';
        $UserID = "";
    }
    else //get data from database to retrieve and display in students registration form
    {

            $StudName = $row['LName'].","." " .$row['FName']." ".$row['MName'];
            $UserType= $row['UserType'];
            $UserID = $row['UserID'];
            $FName = $row['FName'];
            $MName = $row['MName'];
            $LName = $row['LName'];
            $EName = $row['EName'];
            $Gender = $row['Gender'];
            $Address = $row['Address'];
            $ContactNo = $row['ContactNo'];
            $EmailAddress = $row['EmailAddress'];
            $College = '<option value="' . $row['College'] . '">' ;
            $Department = $row['Department'];
            $Course = $row['Course'];
            $YearLevel = $row['YearLevel'];
            $ParentName = $row['ParentName'];
            $ParentEmail = $row['ParentEmail'];
            $ParentContact = $row['ParentContact'];
            $image = $row['image']; // image from the database 
    }
  }  
}    

预先感谢

1 个答案:

答案 0 :(得分:0)

查询数据库时,您要将$ image内容放入$ image中。 更新图像时,您将图像的名称放在$ image中。 这就是为什么图像在更新后无法显示的原因。 你需要: 或在更新时将图像内容放入$ image中

- $image = $_FILES['image']['tmp_name'];
- $imgContent = addslashes(file_get_contents($image));
+ $img_name = $_FILES['image']['tmp_name'];
+ $image = file_get_contents($img_name);
+ $imgContent = addslashes($image);

或在更新后执行查询部分。