欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Thinkphp5.0 阿里云OSS扩展类上传示例(轮子)

发布时间:2023/12/4 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Thinkphp5.0 阿里云OSS扩展类上传示例(轮子) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转载请声明出处
环境必须:阿里云OSS php SDK
阿里云OSS php SDK地址:https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g.11186623.2.9.564522154eaqQP
我是直接下载下来丢到tp5 目录下的 vendor/aliyun 目录下
系统环境:centos 6.5

在项目中正确的加入了php sdk 后,那么直接在配置文件中修改以下的配置文件信息,直接套用,注意,还有一个存储空间名,在代码中有标准,将空间名改成你的空间名即可,还有本项目我是用来做img上传的,其他文件也一样,不过建议根据自己项目需求修改下最好。还有一点由于本人暂时不用考虑服务器的问题。所以是在web端操作经过服务器处理上传,并没有直接上传阿里的OSS。希望各位可以留言留下更好的方法~谢谢!

以下扩展类有几个配置项:
config('webpath_local') :web的绝对路径,与 ‘vendor/aliyun/autoload.php’ 拼接,在类中引用
config('accessKeyId'):
config('accessKeySecret'):.
config('endpoint'): 你的阿里云的 accessKeyId,accessKeySecret,endpoint 加入到配置文件中即可

如何调用:
首先在tp类头部use(在此注意,轮子扩展类的文件名为 aliyun.php )
:use aliyun\aliyun\aliyun;
然后简单调用代码:

$aliyun = new aliyun();//实例化阿里云上传扩展类$fileMsg=$_FILES;//前端给予的文件信息$aliyunUrlResult=$aliyun->Uploadaliyunoss($fileMsg);//传入阿里云OSS上传方法。也就是轮子的上传方法

轮子:

<?php namespace aliyun\aliyun; \\当前命名空间 //引入文件 if (is_file(config('webpath_local') . 'vendor/aliyun/autoload.php')) {require_once config('webpath_local') . 'vendor/aliyun/autoload.php'; }use OSS\OssClient; use OSS\Core\OssException; use OSS\Http\RequestCore; use OSS\Http\ResponseCore;class aliyun {public function Uploadaliyunoss($fileMsg=null){$accessKeyId = config('accessKeyId');$accessKeySecret = config('accessKeySecret');// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = config('endpoint');// 存储空间名称。$bucket= "你的存储空间名称";// 文件名称$object = time().$_FILES['img']['name'];// <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt$filePath = $_FILES['img']['tmp_name'];try {$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);// 设置Socket层传输数据的超时时间,单位秒,默认5184000秒。$ossClient->setTimeout(3600);// 设置建立连接的超时时间,单位秒,默认10秒。$ossClient->setConnectTimeout(10);$res = $ossClient->doesBucketExist($bucket);if ($res === true) {//print(__FUNCTION__ . ": OK" . "\n");} else {//print(__FUNCTION__ . ": FAILED" . "\n");}$UploadResult=$ossClient->uploadFile($bucket, $object, $filePath);//返回上传后的访问url,如果没有设置公共读将会读取不到,设置公共读后将不是很安全return $UploadResult['info']['url'];} catch (OssException $e) {print $e->getMessage();printf($e->getMessage() . "\n");return;}} } 创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的Thinkphp5.0 阿里云OSS扩展类上传示例(轮子)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。