function base64EncodeImage ($image_file) {
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, 'r'), filesize($image_file));
$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
return $base64_image;
}
$file = request()->file('');
if(!empty($file['img1'])){
$info = $file['img1']->validate([
'size' => 1567800000,
'ext' => 'jpg,png,gif,jpeg',
])->rule('uniqid')->move('upload/');
if ($info) {
//图片生成缩略图压缩
$img = \think\Image::open($info);
$img->thumb(800,800)->save('./upload/'.$info->getSaveName());
$data['idCardPic'] = '/upload/'.$info->getSaveName();
}else{
return $this->ajaxReturn(1,1,'上传图片失败');
}
}
$base64_img1 = $this->base64EncodeImage('.'.$data['idCardPic']);
今天在使用一个第三方拓展Image类时报了这个错误,
引用方式如下 \think\image::open($imgSrc);
类的命名空间没有错误,检查了下,发现应该是框架的依赖自动注入出错,
最简单的解决方法是把 ./vendor/topthink/think-image/src下的文件(包括image.php和image文件夹)
移动到 ./thinkphp/library/think 目录下