为什么80%的码农都做不了架构师?>>>   

0、配置文件Config,加入OSS配置选项,设置php.ini最大上传大小(自行解决,这里不做演示)

'OSS' => array('ACCESS_KEY_ID' => '**************', //从OSS获得的AccessKeyId'ACCESS_KEY_SECRET' => '**************', //从OSS获得的AccessKeySecret'ENDPOINT' => 'oss-cn-beijing.aliyuncs.com', //您选定的OSS数据中心访问域名,例如oss-cn-hangzhou.aliyuncs.com'BUCKET'=>'ycwlwhg'),

1、index.html

<form action="{:U('Home/Oss/post')}" method="post" enctype="multipart/form-data"><input type="text" name="dir" placeholder="文件夹"><input type="file" name="file[]" multiple /><input type="submit" value="上传"></form>

2、下载阿里云OSS的PHPSDK ,放置于ThinkPHP/Library/Vendor/下,起名叫OSS,图示

3、上传类

<?phpnamespace Home\Controller;use OSS\Core\OssException;
use OSS\OssClient;
use Think\Controller;class OssController extends Controller
{public function index(){$this->display();}//获取文件名//true 文件名  false后缀function retrieve($file, $type = true){$arr = explode('.', $file);if ($type) {return $arr[0];} else {return $arr[1];}}function Directory($dir){if (is_dir($dir) || @mkdir($dir, 0777)) { //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存在”的警告。//echo $dir . "创建成功<br>";  //输出创建成功的目录} else {$dirArr = explode('/', $dir); //当子目录没创建成功时,试图创建父目录,用explode()函数以'/'分隔符切割成一个数组array_pop($dirArr); //将数组中的最后一项(即子目录)弹出来,$newDir = implode('/', $dirArr); //重新组合成一个文件夹字符串$this->Directory($newDir); //试图创建父目录@mkdir($dir, 0777);}}public function post(){//要上传至OSS的文件夹路径  如  dir/dir1/dir2$dir                = I('dir');$upload             = new \Think\Upload();// 实例化上传类$upload->maxSize    = 3145728;// 设置附件上传大小$upload->rootPath   = './Public/'; // 设置附件上传根目录$upload->savePath   = '/uploads/'; // 设置附件上传(子)目录vendor('OSS.autoload');$ossConfig          = C('OSS');$accessKeyId        = $ossConfig['ACCESS_KEY_ID'];//阿里云OSS  ID$accessKeySecret    = $ossConfig['ACCESS_KEY_SECRET'];//阿里云OSS 秘钥$endpoint           = $ossConfig['ENDPOINT'];//阿里云OSS 地址$ossClient          = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);$bucket             = $ossConfig['BUCKET']; //oss中的文件上传空间$info               = $upload->upload();if (!$info) {// 上传错误提示错误信息//处理上传错误信息$this->error($upload->getError());} else {// 上传成功foreach ($info as $k => $v){$object     = $dir . '/' . $v['name'];//想要保存文件的名称//这个数组是存上传成功以后返回的访问路径,多文件时使用implode函数将其组合$downlink[] = $bucket.'.'.$endpoint.'/'.$object;$file       = './Public' . $info[$k]['savepath'] . $v['savename'];//本地文件路径try {$ossClient->uploadFile($bucket, $object, $file);//上传成功//这里可以删除上传到本地的文件。unlink($file);} catch (OssException $e) {//上传失败printf($e->getMessage() . "\n");return;}}}}}

转载于:https://my.oschina.net/marhal/blog/1787086

ThinkPHP3.2 实现阿里云OSS上传文件相关推荐

  1. SpringBoot整合阿里云OSS上传文件

    一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...

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

    阿里云OSS 上传文件.直接下载 1. 安装OSS SDK composer require aliyuncs/oss-sdk-php 2. thinkPHP接口 public function up ...

  3. 阿里云OSS上传文件时,如何显示上传网速

    阿里云OSS上传文件时,如何显示上传网速 业务场景 用户上传时,网速很慢,或者在上传大文件时,虽然有进度条,但是动的很慢,或者不明显,用户会产生困惑. 所以就产生了一个显示网速的需求点. 实现方式 E ...

  4. Java实现阿里云OSS上传文件

    推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.. 点击跳转到网站 1.准备工作:创建操作阿里云OSS许可证 阿里云官方文档 这里不再赘述,根据官方文档一步步的 ...

  5. 阿里云OSS上传文件设置请求头

    之前写过一篇发送文件消息的,原生input上传文件(聊天发送文件消息),这次的需求就是更改上传地址,使用阿里云OSS上传. 如果想了解阿里云对象存储OSS是如何使用的,请看阿里云存储对象OSS使用讲解 ...

  6. SringBoot集成阿里云OSS上传文件

    上一篇文章讲了如何将文件从linux同步到阿里云的oss有兴趣的小伙伴可以去看看,这篇文章讲述如何将文件上传到阿里云oss上,本文只详细写出后端java代码示例,前端和无用代码都会省略,可以上传文件, ...

  7. 阿里云OSS上传文件以及获取文件

    1.新建bucket (文件存储空间名称),bucket下也可以继续创建目录 2.通过短信验证码创建accessKey,保存accessKeyID和accessKeySecret: 3.添加oss管理 ...

  8. 阿里云OSS上传文件并返回文件地址

    目录 依赖添加 实体类: OSS配置类: OSSUtil工具类: OSS上传接口类: OSS上传接口实现类: OSS上传控制类: 工具类: 依赖添加 在Maven的pom.xml文件中添加OSS的依赖 ...

  9. 使用阿里云OSS上传文件

    本文介绍如何利用Java API操作阿里云OSS对象存储. 1.控制台操作 首先介绍一下阿里云OSS对象存储的一些基本概念. 1.1 进入对象存储界面 登录阿里云账号,进入对象存储界面,如图所示. 进 ...

最新文章

  1. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事
  2. Intellij-Cannot download Sources解决方法
  3. 矩阵乘法计算速度再次突破极限,我炼丹能更快了吗?| 哈佛、MIT
  4. php fpm error,关于启动php-fpm失败的解决办法
  5. DSP using MATLAB 示例Example3.1 3.2 3.3
  6. Spring 事务相关及@Transactional的使用建议
  7. 委托函数《重构》----处理概括关系
  8. bin和sbin区别
  9. Verilog的模块与端口 语法
  10. 计算机c盘只能新建文件夹,1.C盘只能新建文件夹不能新建文件(用户权限问题)...
  11. java车牌号识别EasyPR_EasyPR-Java
  12. MySQL子查询(嵌套查询)-----详细
  13. 技术分享 | MySQL:caching_sha2_password 快速问答
  14. 计算H时M分S秒以后是_关于工程量计算-深圳工程量计算培训
  15. 谭浩强C++ 第十章
  16. 面试问题某个项目中遇到过什么问题
  17. 目前软件测试工作前景怎么样?
  18. python pdf转图片 poppler_Python将PDF转成图片—PyMuPDF和pdf2image
  19. SaaS从业者必读:一文读懂如何衡量与优化SaaS公司的关键指标
  20. 【Java】留下没有基础眼泪的面试题

热门文章

  1. linux c显示日期,Linux C判断日期格式是否合法
  2. openstack一键安装脚本(转载)
  3. 织梦dedecms默认网站地图sitemap.html优化
  4. 获取文本中你须要的字段的 几个命令 grep awk cut tr sed
  5. 团队开发——冲刺1.d
  6. python处理网络文字流,设置为utf8编码
  7. 网站前端设计,从960框架开始
  8. 疑问:关于Microsoft Office InfoPath 2003 Toolkit for Visual Studio 2005 Beta 2
  9. 企业非法集资风险预测_2020CCF--企业非法集资风险预测83.35baseline
  10. spring事务三大接口