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);// 保存图片

  

posted @ 2020-01-17 15:17  北满  阅读(870)  评论(0编辑  收藏  举报