温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP保存Base64图片base64_decode的示例分析

发布时间:2021-08-04 10:14:16 阅读:180 作者:小新 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章给大家分享的是有关PHP保存Base64图片base64_decode的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码。

编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。

/**
 * 获取图片的Base64编码(不支持url) *
 * @param $img_file 传入本地图片地址 *
 * @return string
 */
function imgToBase64($img_file{
  $img_base64 '';
  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(base64_encode($content)); // base64编码
      switch ($img_info[2]) {      //判读图片类型
        case 1$img_type "gif";
          break;
        case 2$img_type "jpg";
          break;
        case 3$img_type "png";
          break;
      }
      $img_base64 'data:image/' . $img_type ';base64,' . $file_content;//合成图片的base64编码
    }
    fclose($fp);
  }
  return $img_base64//返回图片的base64
}

//调用使用的方法

$img_dir dirname(__FILE__) . '/uploads/img/wwllwedd.jpg';
$img_base64 imgToBase64($img_dir);
echo '<img src="' . $img_base64 '">'//图片形式展示
echo '<hr>';
echo $img_base64//输出Base64编码

而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的。但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符

//方法一
preg_match('/^(data:\s*image\/(\w+);base64,)/'$base_info$result// 可以判断是否是 base64的图片
$type $result[2];
$extensions strtolower($type);
if (!in_array($extensionsarray('gif''jpg''png''jpeg','bmp'))) {
  json_rtn(0'上传的图片不在允许内');
}
$database64_decode(str_replace($result[1], ''$base_info));  //对截取后的字符使用base64_decode进行解码
file_put_contents($pic_path,$data//写入文件并保存
 
//方法二
$base64_stringexplode(','$base64_string); //截取data:image/png;base64, 这个逗号后的字符
$database64_decode($base64_string[1]);  //对截取后的字符使用base64_decode进行解码
file_put_contents($url$data); //写入文件并保存

感谢各位的阅读!关于“PHP保存Base64图片base64_decode的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×