laravel结合七牛实现base64的图片上传


确保传到后台的是纯base64字符串而不是以data开头的

   //base64图片上传
    public function uploadCompressImg(Request $request)
    {
 
        $base64 = preg_replace("/\s/",'+',$request->input('img'));
        $img = base64_decode($base64);
        $disk = \Storage::disk('qiniu'); //使用七牛云上传
        $img_name = date('Y/m/d-H:i:s-') . uniqid() . '.png';
        $filename = $disk->put($img_name,$img);//上传
        if(!$filename) {
            return $this->apiResponse(500, '上传失败');
        }
        $img_url = $disk->getDriver()->downloadUrl($img_name); //获取下载链接
        return $this->apiResponse(200, '上传成功',$img_url);
    }

 

 

-----------------------------------------------------------实际项目中------------------------------------------------------------------------

  //获取图片
        $file=$request->input('Upload_img');
        $img = base64_decode(str_replace('data:image/jpeg;base64,', '', $file));

        $auth = new Auth(self::Ak,self::SK);
        //生成上传图片的token
       //$extension  =  strtolower($file->getClientOriginalExtension())  ?:  'png';
        $token = $auth->uploadToken(self::BUCKEY);
        $key = time().rand(0,9999).'.png';
        $uploadMgr = new UploadManager();
        list($ret,$err) = $uploadMgr->put($token,$key,$img);

        if($ret){
            //这里返回的是一个bucket的域名,在前面添加http://后就可以正常看到图片
            $img_src = self::DOMAIN.'/'.$key;
            return response()->json(['status'=>'200','msg'=>'图片上传发送,成功','Upload_img'=>$img_src]);
        }else{
            return response()->json(['status'=>'400','msg'=>'图片上传失败,请重新提交!']);
        }

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM