base64格式的图片字符串和图片文件相互转换的代码
2018-09-25 00:02
295 查看
在移动端上传图片的时候通常会将图片转换成base64格式的字符串提交,所以此时需要使用服务器端的程序进行转换成二进制的数据。如下PHP代码实现了图片文件和base64格式的图片字符串相互转换的方法,同时保证了图片字符串转图片文件时数据类型的问题,进行了简单的封装,使用时可根据实际情况进行修改。具体查看如下代码:
class Img { /** @param $base64Str base64格式的图片字符串数据 @param $path 保存的文件路径和文件名(不用带扩展名 自动匹配) */ function base64ToImg($base64Str,$path){ $arr = explode(',',$base64Str); $bin = base64_decode($arr[1]); $ext = $this->getImgExt($bin);//获取真实扩展名 if($ext !== false){ file_put_contents($path . '.' . $ext,$bin); }else{ exit('图片格式非法'); } } /* 图片文件转base64格式的图片字符串 @param $img_file 图片路径和文件名 return 图片字符串 */ function imgToBase64($img_file){ $img_info = getimagesize($img_file); $img_src = "data:{$img_info['mime']};base64," . base64_encode(file_get_contents($img_file)); return $img_info; } /** 获取图片文件的扩展名 如果不是图片数据则返回false @param $bin 二进制图片数据流 return 图片扩展名 */ public function getImgExt($bin){ $bits = array( 'jpg' => "\xFF\xD8\xFF", 'gif' => "GIF", 'png' => "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a", 'bmp' => 'BM', ); foreach ($bits as $type => $bit) { if (substr($bin, 0, strlen($bit)) === $bit) { return $type; } } return false; } } $obj = new Img(); $str = '这里是base64格式的字符串'; $obj->base64ToImg($str,'路径/文件名');阅读更多
相关文章推荐
- 将图片文件转换为base64格式的代码工具案例
- java读取写入图片文件、byte[]、base64字符串、16进制字符串相互转换
- Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
- Android (代码片段) 将网络或文件字节流转换为字符串(UT-8格式的)在进行网络交互时特别重要
- java 实现 :Base64字符串 和 图片 之间的相互转换
- 将图片转换为base64字符串Java代码
- 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示
- 将图片(二进制文件)存储于数据库,论文件字节流与二进制字符串相互转换
- base64字符串与图片的相互转换
- 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示
- 将图片转换为base64字符串Java代码(未测试)
- js如何将选中图片文件转换成Base64字符串?
- 从零开始学_JavaScript_系列(36)——base64字符串与图片的相互转换
- 图片用Base64 和 字符串相互转换 内存压缩 尺寸压缩 等比例压缩
- ajax异步上传图片文件并将其转换为base64格式
- 校验出生日期,校验身份证格式,校验会员账户:9开头数字,校验手机号码是否合法,判断字符串中的url是否都是图片格式字符串,通过图片url读取图片并将图片转换成base64编码
- file文件与base64字符串的相互转换
- android 压缩图片、生成缩略图 和转换Base64格式的字符串
- Android (代码片段) 将网络或文件字节流转换为字符串(UT-8格式的)在进行网络交互时特别重要