面对这样的问题,我无法将base64 gif字符串转换为gif文件并将其保存到磁盘,使用base64字符串获取其MIME类型 - application / octet-stream(视频流),插入以下代码(如下)并得到这个错误 - “imagecreatefromstring():数据不是在”,我不知道该做什么的识别格式。
$img = base64_decode($photo);
$f = finfo_open();
$mime_type = finfo_buffer($f, $img, FILEINFO_MIME_TYPE);
if($mime_type !== ImageHelper::MIME_TYPE_PNG
&& $mime_type !== ImageHelper::MIME_TYPE_JPEG
&& $mime_type !== ImageHelper::MIME_TYPE_STREAM) {
throw new HttpException(400);
}
if($mime_type == ImageHelper::MIME_TYPE_STREAM) { // image gif
$name = ImageHelper::generateImageName() . '.gif';
$path = $prefixPath . $name;
$img_handler = imagecreatefromstring($img);
if($img_handler !== false) {
imagegif($img_handler, $path);
imagedestroy($img_handler);
} else {
throw new HttpException(400);
}
}
示例字符串 数据:图像/ GIF; BASE64,R0lGODlhuQBpANQdASAgQEIgQCBOQEJYQIk / QCCAQFqMQGDAQICYQMuLQIvCQMDWQCAggEsggCBJgE1ZgEpgwIJfgmCNgGDAgFyCwIWNg ...
更新: 有趣的是,这个问题当我转换gif文件时,我得到格式'application / octet-stream',而不是'image / gif'为什么?我找不到答案......