![php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现 php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现
function data_uri($contents, $mime)
{ $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64);
}
调用
//获得头像路径
function getpicsrc()
{
$db=new db(); $sql="select * from pictable"; $res=$db->query($sql); $pic=$res[0]; $src=data_uri($pic,'image/png'); return $src;
}
显示图像
$src=getpic($tel);//获得头像 <img style="border-radius: 50%;" src="<?php echo $src;?>">
可能遇到的问题:取出的图片显示不全
这与php配置有关,修改一下Php.ini文件
odbc.defaultlrl = 8M
将图片转换为二进制流保存到数据库中image类型
1根据图片路径将图片转化为二进制流 //图片转二进制,$pic为图片路径
$content=file_get_contents($pic);
2获取的二进制进行格式化
$content="0x".bin2hex($content); 3插入数据表
$sql="INSERT INTO[sPic]) VALUES ($content)";
注意在使用Thinkphp自带的数据插入方法时总是报错,因为它会将spic的值自动加上单引号,插入的时候就被认为是字符串型,插入就会失败
---------------------
作者:liuhongwei_study
来源:CSDN
原文:https://blog.csdn.net/liuhongwei_study/article/details/41120443
版权声明:本文为博主原创文章,转载请附上博文链接!