您可能会考虑的另一个选项(假设您使用的是 Apache):
为所有图像扩展名(png、jpg、gif)创建一个带有mod_rewrite 的.htaccess 文件。
让它重定向到查找数据库中请求的图像的 php 脚本。如果它在那里,它会回显标题和 BLOG。如果不存在,则返回标准 404。
这样你就可以拥有:
<img src="adorablepuppy.jpg" />
然后被重定向 ala:
RewriteEngine on
RewriteRule \.(gif|jpg|png)$ imagelookup.php
此脚本对图像进行查询,它(显然)假定请求的图像具有与 URL 中的文件名匹配的唯一键:
$url = $_SERVER['REQUEST_URI'];
$url_parts = explode("/", $url);
$image_name = array_pop($url_parts);
现在您只有图像文件名。进行查询(我将留给您,以及任何验证方法并检查地址中的真实文件等)。
如果有结果:
header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="adorablepuppy.jpg"');
print($image_blog);
否则:
header("HTTP/1.0 404 Not Found");
仅供参考:我不知道这是否会影响性能。但它可以让你做我认为你想做的事,即使用简单的image 元素将图像输出为服务器上的平面图像文件。我倾向于同意 BLOB 不是最好的方法,但这确实避免了任何跨浏览器问题。