繁体   English   中英

使用PHP将图像路径从数据库传递到HTML图像源

[英]Pass image path from database to HTML image source using PHP

我有一个pics表,其中包含上载照片的路径。 如果用户上传了照片,我想显示该图像。 我有一个users表,该表的pic_id引用了pics表中的pic_id

表架构: 在此处输入图片说明

用户上传照片后,我引用pic_id在用户的表与pic_idpics表,其中也有图片的名称和路径。

如果用户已上传照片,我想在div中显示该上传的照片。 如果没有,我将默认照片归给用户。

HTML示例代码:

<div id = "inner_menu_img">
    <img id = "pics" src = "getimage.php">
</div>

由getimage.php内部:

<?php
session_start();
include 'db_connect.php';
    if(isset($_SESSION['pic_id']))
    {
        $pic_id = $_SESSION['pic_id'];
          $sql_select = "SELECT filepath FROM pics WHERE pic_id = '$pic_id'";
          $result = $conn->query("$sql_select");
          $filepath = $result->fetch_assoc();
          $path = $filepath['filepath'];
            $finfo = finfo_open(FILEINFO_MIME_TYPE);  // return mime type ala mimetype extension
            $mime_type = finfo_file($finfo, $path);
            finfo_close($finfo);
            switch($mimetype)
            {
                case "image/jpeg":
                header ('content-type: image/jpeg'); 
                echo '<img src = ".$path.">';
                break;

                case "image/png":
                header ('content-type: image/png'); 
                echo '<img src = ".$path.">';
                break;
            }  
    }
    else
    {
        echo "uploaded_images/default_photo.jpg";
    }
?>

我不确定这样做是否正确,因为我正在尝试自学PHP。 如果有使用AJAX或其他任何方式执行此操作的简便方法,我将很乐意为您提供帮助。

如果您正在从事一个项目,我建议使用框架。 如果您只测试东西,那很好。 出于测试目的,我将代码放在HTML之前,只是将图像的路径分配给变量,然后在图像的src中回显此路径。

<?php
...
if(isset($_SESSION['pic_id']))
    ...
    $imageSrc = '/path/to/image.jpg';
} else {
    $imageSrc = '/path/to/default.jpg';
}
?>
<!doctype html>
<html>
<body>
    <img src="<?php echo $imageSrc ?>">
</body>
</html>

如果您只想返回带有新图像url或html的字符串,请不要将content-type设置为任何图像格式。
否则,如果您真的要发回上传的图像,请参阅此帖子

就您而言,我看到两种解决方案:

  • 在记录日志时,创建一个具有pic路径的会话变量,并在您的src属性中简单地将其回显
    • 如果要保留getimage脚本,请不要返回html标签,而是将图像加载到var中,然后回显此var和图像的内容类型,别无其他(如果要研究图像,请搜索图像代理模式)

祝好运

更好的方法是:

<?php
...
if(isset($_SESSION['pic_id']))
    ...
    $imageSrc = $_SESSION['pic_path'];
} else {
    $imageSrc = '/path/to/default.jpg';
}
?>
<!doctype html>
<html>
<body>
    <img src="<?php echo $imageSrc ?>">
</body>
</html>

但是,如果您正在学习PHP,现在就不要从框架开始,则必须先了解POO并了解基本的过程方面。

暂无
暂无

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

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