php对ba64的支持非常好,有内置的ba64_encode与ba64_decode负责图片的ba青年励志文章64编码与解码。
编码上,只要将图片流读取到,而后使用ba64_encode进行进行编码即可得到。
/** * 获取图片的ba64编码(不支持url) * * @param $img_file 传入本地图片地址 * * @return string */function imgtoba64($img_file) { $img_ba64 = ''繁华的近义词和反义词; if (file_exists($img_file)) { $app_img_file = $img_file; // 图片路径 $img_info = getimagesize($app_img_file); // 取得图片的大小,类型等 $fp = fopen($app_img_file, "r"); // 图片是否可读权限 if ($fp) { $filesize = filesize($app_img_file); $content = fread($fp, $filesize); $file_content = chunk_split(ba64_encode($content)); // ba64编码 switch ($img_info[2]) { //判读图片类型 ca 1: $img_type = "gif"; break; ca 2: $img_type = "jpg"; break; ca 3: $img_type = "png"; break; } $img_ba64 = 'data:image/' . $img_type . ';ba64,' . $file_content;//合成图片的ba64编码 } fclo($fp); } return $img_ba64; //返回图片的ba64}
//调用使用的方法
$img_dir = dirname(__file__) . '/uploads/img/wwllwedd.jpg';$img_ba64 = imgtoba64($img_dir);echo '<img src="' . $img_ba64 . '">'; //图片形式展示echo '<hr>';echo $img_ba64; //输出ba64编码
而解码就略微麻烦一点,究其原因在于把图片编码成ba64字符串后,编码内会加入这些字符 data:image/png;ba64,本来是用于ba64进行识别的。但是如果直接放到php里用ba64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符
//方法一preg_match('/^(data:\s*image\/(\w+);ba64,)/', $ba_info, $result) // 可以判服从领导安排断是否是 ba64的图片$type = $result[2];$extensions = strtolower($type);if (!in_array($extensions, array('gif', 'jpg', 'png', 'jpeg','bmp'))) { json_rtn(0, '上传的图片不在允许内');}$data= ba64_decode(str_replace($result[1], '', $ba_info)); //对截取后的字符使用ba64_decode进行解码file_put_contents($pic_path,$data) //写入文件并保存 //方法二$ba64_string= explode(',', $ba64_string); //截取data:image/png;ba64, 这个逗号后的字符$data= ba64_decode($ba64_string[1]); //对截取后的字符使用ba64_de儿童福利院code进行解码file_put_中班体育游戏contents($url, $data); //写入文件并保存
以上就是本次介绍的关于php保存ba64图片ba64_decode的问题内容,感谢大家的学习和对www.887551.com的支持。
本文发布于:2023-04-08 06:00:27,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/7bc35f8db049b3f1e31983f540fd202c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP保存Base64图片base64.doc
本文 PDF 下载地址:PHP保存Base64图片base64.pdf
留言与评论(共有 0 条评论) |