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;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux生成地图,ROS中利用V-rep进行地图构建仿真

V-rep中显示激光扫描点在VREP自带的场景中找到practicalPathPlanningDemo.ttt文件&#xff0c;删除场景中多余的物体只保留静态的地图。然后在Model browser→components→sensors中找到SICK TiM310 Fast激光雷达&#xff0c;拖入场景中&#xff1a;打开脚本参数修改器&#xf…

微软 改变 开源【几个站点】

codeplex切换到目前的主流开源中心https://github.com/microsoft 几个核心技术的站点https://github.com/Microsoft/dotnethttps://github.com/aspnethttps://github.com/microsoft/vscode 基础站点https://opensource.microsoft.com/https://open.microsoft.com/ 本地化翻译ht…

剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)

1 问题 判断二叉树是不是对称&#xff08;递归和非递归实现&#xff09; 如下二叉树&#xff0c;就是对称的二叉树 23 3 1 4 4 1 如下二叉树&#xff0c;就是非对称的二叉树 23 3 1 4 4 2 2 代码实现 #include <iostream> #in…

如何使用 C# 生成随机并唯一的数字?

咨询区 Christian Peut我的项目中需要生成若干个并且唯一的随机数&#xff0c;我用的是 System.Random&#xff0c;种子给的是 DateTime.Now.Ticks &#xff0c;参考如下代码&#xff1a;private void NewNumber() {Random a new Random(DateTime.Now.Ticks.GetHashCode());My…

Python环境搭建与连接SQL Server类MyDBase的实现

一、开发环境搭建 1、下载所需版本的软件包(点击下载),点击安装即可,注意x86与x64的选择。 2、配置环境:复制python安装目录,粘贴到Path中 3、打开cmd,输入python并回车,看到如下信息,则安装成功!

如何隐藏地址栏中的真实地址_Firefox推出Private Relay插件:可隐藏真实邮箱地址...

Mozilla 正在为 Firefox 开发一项名为Private Relay 的新服务&#xff0c;它能够用来一键随机生成电子邮件别名&#xff0c;以隐藏真实邮箱地址&#xff0c;使用户免受广告商和垃圾邮件侵害。Private Relay 将作为 Firefox插件提供。它于上个月开始测试&#xff0c;目前仍处于封…

使用VS开发C++ 控制台程序或其他项目出现 ‘ LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib” ’ 常规解决办法

原因&#xff1a;大多是由低版本例如VC6(本人是)开发项目&#xff0c;然后在高版本上再开发该项目导致LIBCD.lib出现更改由此出现错误提示。 本人VS版本2017&#xff1b; 一般解决办法&#xff1a; 第一步&#xff1a;右键项目属性 第二步&#xff1a;在忽略特定库位置加上要忽…

linux算法设计,嵌入式Linux平台下随机序列算法设计.doc

嵌入式Linux平台下随机序列算法设计嵌入式Linux平台下随机序列算法设计【摘 要】本文以多媒体播放器的随机不重复播放机能为切入点&#xff0c;针对嵌入式平台实时性要求高&#xff0c;处理速度不够快&#xff0c;但系统存储歌曲量大的特点&#xff0c;进行随机序列产生算法的设…

解决windows系统80端口被占用问题

在windows下部署web应用(80端口)&#xff0c;启动时提示bind 80端口失败 检查端口占用&#xff1a; netstat -ano | findstr 0.0.0.0:80 发现System进程 (pid4) 占用了端口 然而本机也没有安装iis&#xff0c;于是排除IIS服务的问题。解决方式 管理员身份运行cmdnet stop http …

[MySQL] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit

前言&#xff1a;同事的业务场景是&#xff0c;按照cid、author分组&#xff0c;再按照id倒叙&#xff0c;取出前2条记录出来。oracle里面可以通过row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 表示根据cid,author分组&#xff0c;在分组内部根据id排序&…

picturebox 图片自适应

picturebox控件共有两种载入图片方式&#xff0c;分别为&#xff1a; pictureBox1.BackgroundImage Image&#xff0c;pictureBox1.load(url) 为使加载的图片自使用控件尺寸&#xff0c;可以分别对pictureBox控件设置BackGroundImageLayoutStretch&#xff0c;SizeModeStretch…

编译C程序提示之'for' loop initial declaration used outside C99 mode

1 问题 再gcc编译一个c程序的时候&#xff0c;错误提示如下 for loop initial declaration used outside C99 mode 2 原因 c99是允许在for循环中声明变量的&#xff0c;但是如果使用的标准为c99之下的话&#xff0c;则不允许这么做&#xff0c;这里我是在for循环里面定义了变…

不同步节点在线使用Remix开发以太坊Dapp及solidity学习入门 ( 一 ):智能合约HelloWorld

有问题可以点击–>加群互相学习 本人本来想自己写公链&#xff0c;结果发现任重道远&#xff1b; 遂&#xff0c;开始写Dapp&#xff0c;顺便写的时候搞个教程吧。。。 通过系列教程学习将会&#xff1a; 1.基本使用solidity 语言开发智能合约 2.知道怎么发自己的以太坊的to…

Blazor University (16)渲染树 — 使用 @key 优化

原文链接&#xff1a;https://blazor-university.com/components/render-trees/optimising-using-key/使用 key 优化源代码[1]提示&#xff1a; 对于在运行时循环生成的组件&#xff0c;始终使用 key。前面的示例运行良好&#xff0c;因为 Blazor 能够轻松地将虚拟 DOM 元素与浏…

Python趣味编程---Python也会讲笑话

笑话从哪里来?自己写肯定是不现实的。在这个“云”的时代,各种云都有,自然是不缺开放API的(大部分都是免费的)。随意一搜,果然被我找到一个接口:易源_笑话大全http://apistore.baidu.com/apiworks/servicedetail/864.html。下面写一个用Python写的例子,其实不止python语…

python闭环最短路径_深度学习经典算法 | 蚁群算法解析

蚁群算法基本思想蚁群算法的基本原理来源于自然界中蚂蚁觅食的最短路径问题。根据昆虫学家的观察&#xff0c;发现自然界的蚂蚁虽然视觉不发达&#xff0c;但它可以在没有任何提示的情况下找到从食物源到巢穴的最短路径&#xff0c;并且能在环境发生变化(如原有路径上有了障碍物…

c语言整形除法是五舍六入吗,四舍六入五成双 - C/C++论坛 - 51CTO技术论坛_中国领先的IT技术社区...

复制内容到剪贴板代码:#includeusing namespace std;#define FLENGTH 1000; //宏定义保留3位小数double fun(double ldBuf); //四舍六入五成双函数int main(void){double ldTemp9.824963;double ldRet;//大于5ldTemp9.824963;ldRet fun(ldTemp);printf("%.…

苹果的热榜:积分墙背后的隐秘世界

电影《楚门的世界》中描述过这样的故事&#xff1a;楚门这个快乐单纯的青年&#xff0c;一直以为自己是平凡小镇上普通的保险推销员。直到有一天他发现这世界上的一切都是为他精心安排的。他会遇到谁、在他身上将要发生什么事件&#xff0c;都是按照剧本被人操纵的。甚至连他的…

剑指offer之字符串的全排列

1 问题 求字符串的全排列&#xff0c;比如字符串abc&#xff0c;它的全排列如下 abc, acb, bac, bca, cad, cba 2 思路 我们先固定第一个字符&#xff0c;这里的第一个字符肯定是这个字符串里面字符串的全子集&#xff08;不包含重复&#xff09;&#xff0c;abc字符串&…

OC基础学习

1.OC简介 ➢ C语言的基础上&#xff0c;增加了一层最小的面向对象语法 ➢ 完全兼容C语言 ➢ 可以在OC代码中混入C语言代码&#xff0c;甚至是C代码 ➢ 可以使用OC开发Mac OS X平台和iOS平台的应用程序 2.OC关键字 ➢ 基本上所有关键字都是以开头 ➢ 下面列举一些常见的关键字&a…