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链接直接下载文件。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是使用 ThinkPHP 集成阿里云 OSS 的代码示例: 1. 安装阿里云 OSS SDK 在项目根目录下的 `composer.json` 文件中添加阿里云 OSS SDK 的依赖: ``` "require": { "aliyuncs/oss-sdk-php": "^2.5" } ``` 然后执行 `composer install` 来安装依赖。 2. 配置阿里云 OSS 在 `config` 目录下新建 `oss.php` 配置文件,并添加以下内容: ```php return [ 'access_key_id' => 'your_access_key_id', 'access_key_secret' => 'your_access_key_secret', 'bucket' => 'your_bucket_name', 'endpoint' => 'your_endpoint', ]; ``` 其中,`access_key_id` 和 `access_key_secret` 是您的阿里云账号的 Access Key ID 和 Access Key Secret,`bucket` 是您的 OSS 存储桶名称,`endpoint` 是您的 OSS 访问域名。 3. 初始化阿里云 OSS 在 `app` 目录下新建 `common.php` 文件,并添加以下内容: ```php use OSS\OssClient; if (!function_exists('oss')) { function oss() { $config = config('oss'); $ossClient = new OssClient( $config['access_key_id'], $config['access_key_secret'], $config['endpoint'] ); return $ossClient; } } ``` 这里我们使用了一个自定义的全局函数 `oss()` 来初始化阿里云 OSS 客户端。 4. 上传文件阿里云 OSS ```php use OSS\Core\OssException; try { $result = oss()->uploadFile( $bucket, $object, $file ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是上传到 OSS 的文件路径和文件名,`$file` 是本地要上传的文件路径。 5. 下载文件 ```php use OSS\Core\OssException; try { oss()->getObject( $bucket, $object, $options ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是要下载的文件路径和文件名,`$options` 是一个可选的参数数组,用于指定下载文件的一些选项,比如 `fileDownload` 用于指定下载时的文件名。 以上是使用 ThinkPHP 集成阿里云 OSS 的基本操作示例。如果您需要进行其他操作,可以参考阿里云 OSS SDK 的文档和 API 参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值