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