PHP保存表单中base64图片的函数

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP保存表单中base64图片的函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP保存表单中base64图片函数》要点:
本文介绍了PHP保存表单中base64图片函数,希望对您有用。如果有疑问,可以联系我们。

这是编程之家的一个保存客户端发上来的base64代码,把它保存为图片

发上来的代码如:

/9j/4AAQSkZJRgABAQAA .....后面略,全是base64代码

调用示例:

#1、使用函数自动生成图片名
base64Toimg($str ,ROOT.'aa/bb');  #会在根目录下aa/bb下保存为类似201704222316021151.jPEg的图片名

#2、使用自定义图片名
base64ToImg($str ,ROOT.'a.jpg');

返回值:

保存失败或base64代码不合格时,返回false

成功则返回含路径的新图片名。

函数代码:其中的mkdirs()是递归创建目录函数,参http://www.js-code.COM/jiaocheng/73.htML

/** base64保存为图片
 * 作者:http://www.js-code.com 编程之家
 * @param string $base64Str  图片中src部分的base64代码
 * @param string $pathOrName  可以是路径+指定文件名,也可以是路径,此时会生成日期+随机生成图片名。
 */
function base64ToImg($base64Str='' ,$pathOrName='')
{
       //保存base64字符串为图片  ......  
       if (PReg_match('/^/', $base64Str, $imginfo))
       {
              $imgContent = str_replace($imginfo[0], '', $base64Str);
              //检查内容是否符合base64格式,
              if (!preg_match('/^[a-zA-Z0-9\+\/\=]+$/', $imgContent)) return false; //非正常base64
              #$imginfo = Array ( [0] =>  [1] => jpeg )
              //生成新名字
              $newImgName = $pathOrName;
              $ext = strtolower(strrchr($pathOrName , '.'));
              if( (empty($ext) || !in_array($ext,['.jpg','.jpeg', '.png','.bmp','.gif'])) && !empty($imginfo[1])) {
                     $ext = $imginfo[1];
                     $newImgName = date ( 'YmdHis' ) . random ( 2 ) . random ( 2 ) . '.' . $ext;
                     $newImgName = rtrim ( $pathOrName, '/' ) . '/' . $newImgName;
              }
              $dir = dirname($newImgName);
              if(!is_dir($dir)) ;mkdirs($dir);  //创建目录

              if(@file_put_contents($newImgName, base64_decode($imgContent)) ){
                     return $newImgName;
              }      
       }
       return false;
}

其实base64挺方便的,只是生成图片体积挺大的,最好使用压缩函数再压一次。

脚本宝典总结

以上是脚本宝典为你收集整理的PHP保存表单中base64图片的函数全部内容,希望文章能够帮你解决PHP保存表单中base64图片的函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。