php保存base64编码的图片

  • Simon 发布于 2017-03-11
  • 栏目: php
  • 1454人围观
  • 0评论

Simon之前用到过一款jquery的图片裁剪插件photoClip , 这个插件处理后的图片数据是base64编码的 .

那我们来写个方法 , 将base64编码的数据保存成图片文件 .

function upload_pic($thumb){
    if(!$thumb) return '';
    if( strpos($thumb ,'data:image') === false ) return $thumb;
    $fileroot = APP_ROOT.'/upload/thumb/'.date('Ym').'/';//设置图片保存路径
    if( !is_dir($fileroot) ) mkdir($fileroot ,0777,ture);//没有保存目录则创建
    $fileext = str_replace('data:image/' , '' , strstr($thumb , ';' ,true));
        in_array($fileext , ['jpg','png','gif','bmp']) or $fileext = 'jpg';//jpeg->jpg
    $filename = date("YmdHis").'_'.rand(10000, 99999) . '.' . $fileext;//生成文件名
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $thumb, $result)){
        if (file_put_contents($fileroot.$filename, base64_decode(str_replace($result[1], '', $thumb)))){
            return str_replace(APP_ROOT.'/',URL,$fileroot.$filename);//返回可直接使用的图片url
        }
    }
}

将$fileroot和$filename改成自己的图片保存路径和名称 , 就可以使用了

标签: php

评论