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

使用PHP将图像路径从数据库传递到HTML图像源,php,jquery,html,mysql,sql,Php,Jquery,Html,Mysql,Sql,我有一张pics表格,上面有上传照片的路径。如果用户上传了照片,我想显示该图像。我有一个users表,它有一个pic\u id,它引用pics表中的pic\u id 表架构: 用户上传照片后,我将用户表中的picu id与pics表中的picu id一起引用,其中也包含图片名称和路径 如果用户上传了照片,我想在div中显示上传的照片。如果不是,我将默认照片赋予用户 HTML示例代码: <div id = "inner_menu_img"> <img id = "pic

我有一张
pics
表格,上面有上传照片的路径。如果用户上传了照片,我想显示该图像。我有一个
users
表,它有一个
pic\u id
,它引用
pics
表中的
pic\u id

表架构:

用户上传照片后,我将用户表中的
picu id
pics
表中的
picu id
一起引用,其中也包含图片名称和路径

如果用户上传了照片,我想在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或其他任何方法来实现这一点,我很乐意尝试一下

在您的案例中,我看到两种解决方案:

  • 在日志记录时,使用pic path创建一个会话变量,并在src属性中简单地回显它
    • 如果要保留getimage脚本,请不要返回html标记,而是将图像加载到var中,并回显该var和图像的内容类型,而不要执行其他操作(如果要研究图像代理模式,请搜索图像代理模式)

祝你好运

如果你正在做一个项目,我建议你使用一个框架。如果你只是在测试东西,这很好。出于测试目的,我将把代码放在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的字符串,请不要将内容类型设置为任何图像格式。
否则,如果确实要将上载的图像发回,请以更好的方式查看:

<?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,了解基本的过程方面

如果我想拆分PHP代码和HTML代码,我是否只需要在顶部包含phpcode.PHP,您可以这样做。它现在可以工作了,只是它会在页面顶部的路径中进行回显。请确保phpcode.php文件中没有任何
echo