Commit daf5c971 authored by Liu lu's avatar Liu lu
Browse files

上传本地文件到oss

parent dfc2bad6
Loading
Loading
Loading
Loading
+27 −2
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ class UploadOssService
     * @throws \Meibuyu\Common\Exceptions\HttpResponseException
     * @author chentianyu
     */
    public function uploadImage(UploadedFile $image, string $module, int $userId, bool $uniqueFileName = false)
    public function uploadImage(UploadedFile $image, string $module, int $userId,  $uniqueFileName = false)
    {
        $ext = $image->getExtension();
        $clientFilename = $image->getClientFilename();
@@ -92,7 +92,7 @@ class UploadOssService
     * @throws \Meibuyu\Common\Exceptions\HttpResponseException
     * @author chentianyu
     */
    public function uploadFile(UploadedFile $file, string $module, string $userId, bool $uniqueFileName = false, array $options = [])
    public function uploadFile(UploadedFile $file, string $module, string $userId,  $uniqueFileName = false, array $options = [])
    {
        $ext = $file->getExtension();
        $clientFilename = $file->getClientFilename();
@@ -149,6 +149,31 @@ class UploadOssService
        }
    }

    /**
     * 上传本地文件到oss
     * @param string $localFilePath
     * @param string $ossFilePath 枚举key
     * @return mixed
     * @throws HttpResponseException
     * @author Liu lu
     * date 2023-02-09
     */
    public function uploadLocalFile(string $localFilePath,  string $ossFilePath)
    {
        $extension = pathinfo(parse_url($localFilePath,PHP_URL_PATH),PATHINFO_EXTENSION);
        $ossFilePath      = '/oss2/'.env('APP_ENV').'/'.env('APP_NAME') ."/{$ossFilePath}/". md5($localFilePath).'.'.$extension;

        try {
            $oss = $this->factory->get('oss');
            $stream = fopen($localFilePath, 'r+');
            $oss->writeStream($ossFilePath, $stream);
            is_resource($stream) && fclose($stream);
            return $this->urlPrefix . $ossFilePath;
        } catch (FileExistsException $e) {
            throw new HttpResponseException($e->getMessage());
        }
    }

    /**
     * 生成唯一文件名
     * @return string