繁体   English   中英

mysql 中的图像未显示在 php 中

[英]Image not displaying in php from mysql

我正在尝试在 php 中显示数据库值,我的 php 代码如下

<?php
 $servername = "localhost";
 $username = "root";
 $password = "";
 $dbname = "teia";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from registers ORDER BY ID DESC limit 1 ";
$result = $conn->query($sql);

if (!empty($result) && $result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $name     = $row['firstname'];
        $lastname = " $row[lastname] ";
        $mobile   = " $row[mobilenumber] ";
        $exp      = " $row[experience] ";
        $photo    = " $row[Photo] ";
    }
} else {
    echo "0 results";
}

这就是我试图获取图像的内容

<?php echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['Photo'] ).'"/>';?>

除图像外,所有数据都在显示,我可以知道是什么原因吗?

在此输入图片说明 在输入图片说明

通常的做法是将图像存储在文件系统的目录中,并将对图像的引用存储在数据库中。 例如,图像的路径、图像名称等。或者,您甚至可以将图像存储在内容交付网络 (CDN) 或跨越一些广阔物理区域的众多主机上,并存储引用以访问数据库中的这些资源.

正如您所提到的,您只存储了图像的标题。 此外,您必须将图像存储到特定路径。

    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["imageUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

    if (move_uploaded_file($_FILES["imageUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["imageUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }

您可以存储图像的名称,如:

$image=basename( $_FILES["imageUpload"]["name"],".jpg"); 

当你想渲染时,就这样做:

<img src='uploads/$image_name' height='150px' width='300px'></td>"

从数据库中检索 $image_name 的位置

将图像以 blob 格式插入数据库:

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
//you keep your column name setting for insertion. I keep image type Blob.
$query = "INSERT INTO products (id,image) VALUES('','$image')";  
$qry = mysqli_query($db, $query);

尝试像这样检索图像:

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM