①读取数据库二进制流格式的图片信息,
②将该二进制流转换成图片,存在临时文件里,
③然后获取图片路径,将该图片转换成ba
④拿着ba
⑤利用代码删除临时图片
ps:
①不要问我为什么要把图片直接存在数据库,领导说的,没解释,哈哈
②我考虑过直接将二进制流显示在页面上,但是失败了,
③我考虑过直接将二进制流转换成ba
下图是整体实现过程,很简单:

下图是将二进制流变化成图片:

代码:
/**
* @name 将二进制流变化成图片
* @Author: 岳晓通
* @ $imgs 二进制流格式的图片
* @ $new_file 返回的是图片的路径
* @data 2018年3月14日 15:18:27
*/
public function change_picture($imgs){
$path="./uploads/temporary/";
if(!is_dir($path)){
mkdir($path);
}
$new_file = "./uploads/temporary/" . time().".jpg"; //生成图片的名字
if(!empty($imgs)){
$file = fopen($new_file,"w");//打开文件准备写入
fwrite($file,$imgs);//写入
fclose($file);//关闭
}
return $new_file;
}
下图是将图片转换成ba

代码:
/**
* @name 将图片转换成ba
* @Author: 岳晓通
* @ $image_file 这个是图片的路径
* @ $ba
* @data 2018年3月14日 15:18:27
*/
function ba
$ba
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, 'r'), filesize($image_file));
$ba
return $ba
}
下图是删除临时图片的方法:

代码:
/**
* @name 删除thinkphp目录
* @Author: 岳晓通
* @data 2018年3月14日 15:18:27
*/
function delDirAndFile($path, $delDir = true) {
if (is_array($path)) {
foreach ($path as $subPath)
delDirAndFile($subPath, $delDir);
}
if (is_dir($path)) {
$handle = opendir($path);
if ($handle) {
while (false !== ( $item = readdir($handle) )) {
if ($item != "." && $item != "..")
is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unli
}
closedir($handle);
if ($delDir)
return rmdir($path);
}
} else {
if (file_exists($path)) {
return unli
} else {
return FALSE;
}
}
clearstatcache();
}
ok,拿着ba
来俩张效果图吧,
下图是打印出来的ba

下图是显示效果:
