我试图从MySQL blob字段显示图像.我尝试了一些不同的东西,但似乎都没有.
我努力了:
> header(“Content-type:$type”); img src = $blobData;
> header(“Content-type:$type”);回波($blobData);
解决方法:
您可以考虑的另一个选项(假设您使用的是Apache):
为所有图像扩展(png,jpg,gif)创建一个带有mod_rewrite的.htaccess文件.
将它重定向到查找数据库中请求的图像的php脚本.如果它在那里,它会回显标题和博客.如果不存在,则返回标准404.
这样你就可以:
然后重定向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");
仅供参考:我不知道这在性能方面是否会不好.但它可以让你做我认为你想要的东西,输出图像好像它是一个平面图像文件在服务器上使用一个简单的图像元素.我倾向于同意BLOB不是最好的方法,但这确实避免了任何跨浏览器问题.
标签:php,mysql,blob
来源: https://codeday.me/bug/20190929/1832813.html