使用PHP时不显示Base64图像
我需要显示一个Base64格式的图像。当我在PHP中构建img标记时,它不会显示图像,只会显示default'breaked image'图标。当我查看页面源代码并单击Base64时,数据将按预期显示图片。此外,如果我复制并粘贴页面源代码并将其保存为HTML文件,它将按预期显示。我还尝试了一个随机图像,但当我的图像从一个.html文件工作时,我认为它是可以的,应该可以工作吗 .php代码:使用PHP时不显示Base64图像,php,html,image,Php,Html,Image,我需要显示一个Base64格式的图像。当我在PHP中构建img标记时,它不会显示图像,只会显示default'breaked image'图标。当我查看页面源代码并单击Base64时,数据将按预期显示图片。此外,如果我复制并粘贴页面源代码并将其保存为HTML文件,它将按预期显示。我还尝试了一个随机图像,但当我的图像从一个.html文件工作时,我认为它是可以的,应该可以工作吗 .php代码: header('content-type: text/html'); ... echo "<ht
header('content-type: text/html');
...
echo "<html><head></head><body>";
echo "Name = $name<br/>";
echo "<img src=\"data:image/jpg;base64,$photo\"/>";
echo "</body></html>";
来自视图源的HTML:
<html>
<head></head>
<body>Name = Andrea Pilipczuk<br/>
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAyADIAA...{too big to fit here].../9k="/>
</body>
</html>
编辑:
这并没有出现在View Source中,但在Chrome周围挖掘,我检查了图像元素,最后发现是9k=�������. 这是填充物吗?当我编辑该元素以删除这些元素时,图像按预期显示
下面的代码删除了随机字符并正确显示图像,但似乎有点粗糙,显然更愿意解决根本问题
$unpadded = explode("=", $photo);
$padding = strlen($unpadded[0]) % 3;
$padded = $unpadded[0];
while ($padding > 0) {
$padded .= "=";
$padding--;
}
echo "<img src=\"data:image/jpeg;base64,$padded\"/>";
如果您修改为image/jpeg,则会产生影响?您可以发布图像吗?对于测试?和相关的HTML输出将是有益的。你可能需要一个doctype,但它可能是无关的。试试这篇文章,它应该有你的答案;