如何在SQL数据库中显示二进制形式的图像?

时间:2016-10-14 07:42:08

标签: php mysql sql

我正在使用此代码,但图片未显示已满。此代码显示图像的四分之一而非完整图像。

<?php 
echo '<img src="data:'.$image_mime_type.';base64,'.base64_encode($rs["Pic"]).'" alt="My image alt" />';
?>

截图:

enter image description here

3 个答案:

答案 0 :(得分:0)

试试这个,

$path = $rs["Pic"];
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
//echo $base64;

echo '<img src="'.$base64.'" alt="My image alt" />';

答案 1 :(得分:0)

如果你只使用BLOB(猜它是blob)

然后仅存储您提供的图像数据是不够的。

您必须使用MEDIUMBLOB或LONGBLOB

max size of

BLOB: ~ 63KB
MEDIUMBLOB: ~ 16MB
LONGBLOB: ~ 4GB

有关BLOB长度和其他MySql字段的详细信息,请参阅此处:http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

答案 2 :(得分:0)

四种BLOB类型为TINYBLOBBLOBMEDIUMBLOBLONGBLOB。尝试将其更改为MEDIUMBLOBLONGBLOB。我有类似的问题,我没有得到完整的图像(但是,获得图像的一部分)。这是您的图像未完全存储在db中的最可能原因之一。更改表结构后,您需要上传新的/相同的图像,并查看问题是否已解决。