我有一个上传功能,将图像上传到数据库中,然后我想回显图像,但是问题是如果我更新图像,它将不会显示,但是如果是第一次上传,则图像将显示在这里我如何上传图片
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
}
}
}
预先感谢
答案 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);
或在更新后执行查询部分。