php 上传 Base64 图片
/** * Notes: Base64 图片 上传 * Created by chenbiao@seabig.cn * Date: 2020/1/16 * Time: 10:49
*@param $image base64图片字符串 */ public function fileUploads($image) { $this->_globals();
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $image, $result)) {
$type = $result[2];
}
//设置图片生成的名字 $imageName = time() . rand("100", "999") . ".$type"; //判断是否有逗号,有就截取后半部分 if (strstr($image, ",")) { $image = explode(',', $image); $image = $image[1]; } //设置图片保存路径 $path = _FILE_PATH . "/" . date("Y") . "/" . date("m") . "/" . date("d"); //判断目录是否存在 不存在就创建 if (!is_dir($path)) { mkdir($path, 0777, true); } //拼接路径和图片名称 $imageSrc = $path . "/" . $imageName; //生成图片 返回字节数 $res = file_put_contents($imageSrc, base64_decode($image)); //data:image/jpeg;base64, 拼接Base64 if ($res) { //返回图片路径 return "/" . date("Y") . "/" . date("m") . "/" . date("d") . "/" . $imageName; } else { return ""; } }
顺便记录一个方便好用的图片扩展库 intervention/image,下面是两个小例子
use Intervention\Image\ImageManagerStatic as Image;
//重新调整图片比例 require_once(_BASE_PATH . '/vendor/autoload.php'); //引入类库 $picpath = $_POST['picpath']; //图片路径 $picpath=substr($picpath,7); Image::configure(array('driver' => 'imagick')); $img = Image::make(_FILE_PATH . $picpath);// 读取图片 $width = $img->width(); //获取宽度 $height = $img->height(); //获取高度 if($width > 500){ $newHight=500*$height/$width; $img->resize(500, $newHight); $img->save(_FILE_PATH . $picpath);// 保存图片 }
use Intervention\Image\ImageManagerStatic as Image;
//图片旋转90度 require_once(_COMPOSER_PATH); Image::configure(array('driver' => 'imagick')); $img = Image::make(_FILE_PATH . $picpath);// 读取图片 $img->rotate(90);// 旋转 $img->save(_FILE_PATH . $picpath);// 保存图片