【发布时间】:2019-05-31 07:26:29
【问题描述】:
我想显示使用 base64_encode 编码的图像。图片是根据通过 URL 传递的 id 参数从 mysql db 中获取的。内容类型已设置。假设我在 index.php 文件中有一个代码,我在浏览器中使用 url localhost:8080/products_images/index.php?id=1000 访问该文件
header('Content-Type:image/png');
if (isset($_GET['id'])) {
$id = $_GET['id'];
}
$sql = "SELECT image FROM table WHERE id = ".(int)$id;
$image = $dbInstance->getArray($sql);
unset($sql);
echo '<img src="data:image/png; base64,'.$image[0]['image'].'"/>';
它没有在浏览器上显示图片,而是说图片“localhost:8080/products_images/index.php?id=1000”无法显示,因为它包含错误。
我知道它的发生,因为在浏览器 DOM 上,我可以清楚地看到图像标签看起来像 <img src="localhost:8080/products_images/index.php?id=1000">
它不是将编码字符串显示为 img src 标签,而是显示整个 URL。
任何帮助将不胜感激!
【问题讨论】:
-
您的脚本实际上并没有输出任何东西。你期待看到什么?
-
嘿,感谢您在这里快速回复。我已经编辑了代码。请立即检查。
-
@Juan 是的,我确信并测试了我在这里得到了正确的 base64 编码图像。
-
这个问题吸引了太多低质量的答案。这可能应该被标记为适度,并要求为其设置某种形式的保护。
-
你有一些 javascript 可以将它插入到 DOM 中吗?