使用PHP

时间:2015-11-26 23:24:54

标签: php jquery html mysql sql

我有一张pics表,其中包含已上传照片的路径。我希望在用户上传照片时显示该图像。我有一个users表,其pic_id引用了pic_id表中的pics

表架构: enter image description here

用户上传照片后,我使用pic_id表中的pic_id引用用户表格中的pics,其中还包含图片名称和路径。

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

4 个答案:

答案 0 :(得分:1)

如果您正在处理项目,我建议您使用Framework。如果你只测试东西,这很好。出于测试目的,我会将代码放在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>

答案 1 :(得分:1)

如果您只想返回带有新图像的字符串url或html,请不要将内容类型设置为任何图像格式。
否则,如果您确实要将上传的图像发回,请参阅this post

答案 2 :(得分:0)

在您的情况下,我看到两个解决方案:

  • 关于日志记录,使用pic路径创建会话var并简单地在src属性中回显它
    • 如果你想保留你的getimage脚本,不要返回一个html标签但是在var中加载图像并回显这个var和内容类型的图像,没有别的(如果你想研究它,搜索图像代理模式) )
祝你好运

答案 3 :(得分:0)

以更好的方式:

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