<?php declare (strict_types = 1); namespace App\Controller; use App\JsonRpc\PublicRpcServiceInterface; use App\Tools\Result; use Hyperf\Di\Annotation\Inject; use Hyperf\Validation\Contract\ValidatorFactoryInterface; class MinioController extends AbstractController { #[Inject] protected ValidatorFactoryInterface $validationFactory; /** * @var PublicRpcServiceInterface */ #[Inject] private $publicServiceClient; /** * 获取所有的buckets * @return array */ public function listBuckets() { $result = $this->publicServiceClient->getBuckets([]); // 直接返回服务层生成的响应 return Result::success($result['data']); } /** * 上传文件 * @return array */ public function uploadFiles() { $uploadedFile = $this->request->file('file'); if ($uploadedFile && $uploadedFile->isValid()) { $filename = $uploadedFile->getClientFilename(); $fileContent = base64_encode(file_get_contents($uploadedFile->getRealPath())); $mimeType = $uploadedFile->getMimeType(); // var_dump("大小:",$uploadedFile->getSize()); if($uploadedFile->getSize()>10242880){ return Result::error("最大支持10M!"); } $data['fileContent'] = $fileContent; $data['fileName'] = $filename; $data['contentType'] = $mimeType; $data['ext'] = $uploadedFile->getExtension(); $data['size'] = $uploadedFile->getSize(); $result = $this->publicServiceClient->uploadFile($data); if($result['code']==200){ return Result::success($result['data']); }else{ return Result::error("上传失败了!"); } }else{ return Result::error("请选择需要上传的文件"); } } }