我有一个网站当前使用文件服务器上的图像。这些图像显示在页面上,用户可以根据需要拖放每个图像。这是使用 jQuery 完成的,图像包含在列表中。每张图片都非常标准:
<img src='//network_path/image.png' height='80px'>
然而现在我需要引用在 Oracle 数据库中存储为 BLOB 的图像(对此没有选择,因此不进行优劣讨论)。我可以使用以下命令检索 BLOB 并自行显示:
$sql = "SELECT image FROM images WHERE image_id = 123";
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$img = $row['IMAGE']->load();
header("Content-type: image/jpeg");
print $img;
但我需要[有效地]获取该图像作为 img 标签的 src 属性。我尝试了 imagecreatefromstring() 但这只是返回浏览器中的图像,忽略其他 html。我查看了 data uri,但 IE8 的大小限制排除了这一点。
所以现在我有点陷入困境。我的搜索不断出现使用 src 属性来加载包含图像的另一个页面。但我需要图像本身实际显示在页面上。 (注:我说的是图像,意思是一页上至少有一张图像,但最多八张图像)。
任何帮助将不胜感激。
嗯,你可以做一些事情。您可以制作一个将呈现图像的页面
<img src="image.php?id=123" />
该 image.php 页面将具有以下内容:
$sql = "SELECT image FROM images WHERE image_id = " . (int) $_GET['id'];
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
if (!$row) {
header('Status: 404 Not Found');
} else {
$img = $row['IMAGE']->load();
header("Content-type: image/jpeg");
print $img;
}
或者,您可以将其进行 base64 编码到 src 中(注意,并非所有浏览器都能很好地处理这一点):
<img src="data:image/jpeg;base64,<?php echo base64_encode($img); ?>" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)