CMF5 圖片上傳並保存到七牛雲

/**
     * 上傳圖片並保存到七牛雲
     */
    public function uploadPic(){
        //接收文件
        $file=request()->file('file');

        if($file==null){
            exit(json_encode(array(
                'code'=>'error',
                'msg'=>'請上傳文件!'
            )));
        }

        //路徑
        $path = 'default' . DS .date('Ymd',time());
        $filePaths= 'upload' . DS . $path;

        if(!empty($file)){
            $info = $file->validate(['size'=>10485760,'ext'=>'gif,jpg,jpeg,png,bmp,swf,mp4,mov'])->rule('uniqid')->move($filePaths);

            $error = $file->getError();

            //驗證文件後綴後大小
            if(!empty($error)){
				return ['code'=>404,'msg'=>$error];
            }
            if($info){
                // 成功上傳後 獲取上傳信息
                $suffix = $info->getExtension();//文件後綴
                $image=['gif','GIF','jpg','JPG','jpeg','JPEG','png','PNG','bmp','BMP','swf','SWF'];
                $video=['mp4','MP4','mov','MOV'];
                if(in_array($suffix,$image)){
                    $file_type = 'image';
                }else if(in_array($suffix,$video)){
                    $file_type = 'video';
                }else{
                    $file_type = 'fail';
                }

                $info->getSaveName();
                $photo = $info->getSavename();

		        //上傳農場背景圖片到七牛雲

		        //本地路徑
				$image_url = $filePaths. DS .$photo;

		        //上傳到七牛雲圖片名稱
		        $name = $path. DS .$photo;

				//獲取token值
				$accessKey = '**************************************';
				$secretKey = '**************************************';

				// 初始化籤權對象
				$auth = new Auth($accessKey, $secretKey);
				$bucket = '******';

				$token = $auth->uploadToken($bucket);
				$uploadMgr = new UploadManager();

				// 調用 UploadManager 的 putFile 方法進行文件的上傳。
				list($ret, $err) = $uploadMgr->putFile($token, $name, $image_url);

		        //刪除本地臨時圖片
				if(is_file($image_url)) {
					unlink($image_url);
				}

		        //七牛雲圖片路徑
				$image_url = cmf_get_image_url($name) . '?imageView2/1/w/300/h/300';

		        //去除水印操做
				$image_url = str_replace('!watermark','',$image_url);
				
            }else{
                // 上傳失敗獲取錯誤信息
                $file->getError();
            }
        }else{
            $photo = '';
        }
        if($photo !== ''){
            $src = cmf_get_image_url($path.DS.$photo);
            return ['code'=>1,'msg'=>'成功','file_type'=>$file_type,'photo'=>$path.DS.$photo,'src'=>$image_url,'base64_image'=>''];
        }else{
            return ['code'=>404,'msg'=>'失敗'];
        }
    }
相關文章
相關標籤/搜索