我有一张pics
表,其中包含已上传照片的路径。我希望在用户上传照片时显示该图像。我有一个users
表,其pic_id
引用了pic_id
表中的pics
。
用户上传照片后,我使用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或任何其他方式来做到这一点,我很乐意尝试一下。
答案 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)
在您的情况下,我看到两个解决方案:
答案 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并了解基本的程序方面