0

PHP 将二进制流文件转换为图片,图片以二进制流存入数据库

2021-02-07转载,版权声明见本文尾部。

【双12】主会场 低至1折

定义

//二进制流文件转换为图片base64格式
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类型

根据图片路径将图片转化为二进制流

//图片转二进制,$pic为图片路径
$content=file_get_contents($pic);

获取的二进制进行格式化

$content="0x".bin2hex($content);

插入数据表

$sql="INSERT INTO[sPic]) VALUES ($content)";

注意在使用Thinkphp自带的数据插入方法时总是报错,因为它会将spic的值自动加上单引号,插入的时候就被认为是字符串型,插入就会失败。

收藏

提示信息