thinkPHP 阿里云OSS 上传文件、直接下载

阿里云OSS 上传文件、直接下载

1. 安装OSS SDK

composer require aliyuncs/oss-sdk-php

2. thinkPHP接口

public function uploadFile(){
    
    
      if (is_file(__DIR__ . '/../autoload.php')) {
    
    
          require_once __DIR__ . '/../autoload.php';
      }
      if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    
    
          require_once __DIR__ . '/../vendor/autoload.php';
      }
      // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
      $accessKeyId = "xxxxxx";
      $accessKeySecret = "xxxxxx";
      // Endpoint以杭州为例,其它Region请按实际情况填写。
      $endpoint = "oss-accelerate.aliyuncs.com";
      // 设置存储空间名称。
      $bucket= "xxxxxx";
      $fFiles = $_FILES['file'];
      // 设置文件名称
      $filename = $fFiles['name'];
      $array = explode('.', $filename);
      $object = $this->uuid(). '.' . array_pop($array);
      // 此处设置是为了访问地址可直接下载
      $options = array(
	      OssClient::OSS_HEADERS => array(
	        'Content-Disposition' => 'attachment'
	      )
	  );

      try{
    
    
          $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
         	$datas = $ossClient->uploadFile($bucket, $object, $fFiles['tmp_name'], $options);
      	return json([
      		"code" => 0,
      		"msg" => "上传成功",
      		"data" => [
      			"src" => $datas["info"]["url"]
      		]
      	]);
      } catch(OssException $e) {
    
    
          //printf($e->getMessage() . "\n");
          return;
      }

  }

Tips: 设置'Content-Disposition' => 'attachment' 可以直接访问oss链接直接下载文件。

猜你喜欢

转载自blog.csdn.net/zy1281539626/article/details/111999069