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改成自己的图片保存路径和名称 , 就可以使用了
转载请说明出处:
Simon的PHP技术博客
»
php保存base64编码的图片
评论