简述

1、阿里云开通对象存储服务 OSS 并创建Bucket

2、下载PHP SDK至框架扩展目录,点我下载

3、码上code

阿里云操作

开通对象存储服务 OSS

创建 Bucket

配置AccessKeyAccess Key Secret

进入管理AccessKey页面 (可将鼠标放在右上角用户头像上,在弹出来的框中点击AccessKey 管理)

找到Bucket对应的外网访问节点

下载 PHP SDK

点我下载

SDK 参考

API参考

SDK 下载完成后放入框架对应的扩展目录

上码

config配置

//阿里云OSS配置
'alioss' =>[
'AccessKeyID' => 'AccessKey ID',
'AccessKeySecret' => 'Access Key Secret',
'EndPoint' => '外网访问地域节点',
'Bucket' => 'Bucket 名称',
],

后端结合SDK实现文件上传至阿里云OSS

以ThinkPHP5为例

<?php
namespace app\controller; use think\Controller;
use think\Image; require_once APP_PATH . '/../extend/aliyun-oss/autoload.php'; //引入阿里云OSS SDK,注意替换路径
use OSS\Core\OssException;
use OSS\OssClient; class AliOssUpload
{ /**
* 文件上传接口
*
*/
public function uploadFile()
{
//接收上传文件
$file = $this->request->file('file');
$res = [];
if($file){
//调用阿里云OSS上传
$res = self::AliuploadFile('img', $file);
if ($res['code'] == 200) {
//业务逻辑处理......
}
}else{
$res['code']=0;
$res['msg']='没有上传文件';
}
return json($res);
} /**
* 调用阿里云OSS SDK
* @param $module 模块
* @param $file 上传的文件
* @return array 阿里云OSS上传处理结果
*
*/
public static function AliuploadFile($module, $file)
{
$resResult = Image::open($file);
try {
//获取OSS参数值
$KeyId = config('alioss.AccessKeyID');
$KeySecret = config('alioss.AccessKeySecret');
$EndPoint = config('alioss.EndPoint');
$Bucket = config('alioss.Bucket');
//实例化
$ossClient = new OssClient($KeyId, $KeySecret, $EndPoint);
//sha1加密 生成文件名 连接后缀
$fileName = $module . '/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
//执行阿里云上传
$result = $ossClient->uploadFile($Bucket, $fileName, $file->getInfo()['tmp_name']);
//图片地址:$result['info']['url']
$arr = ['code' => 200, 'msg' => '上传成功', 'data' => $result['info']['url']];
} catch (OssException $e) {
$arr = ['code' => 0, 'msg' => $e->getMessage(), 'data' => ''];
}
return $arr;
}
}

前端参考代码

前端使用layui,谨慎参考

<div class="layui-upload" id="upload-thumb">
<label class="layui-form-label">缩略图</label>
<button type="button" class="layui-btn" id="thumb">上传图片</button>
<div class="layui-upload-list">
<label class="layui-form-label"></label>
<img class="layui-upload-img" id="demo1" width="150" height="150">
<p id="demoText"></p>
</div>
</div> <script>
//上传图片接口
layui.use('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#thumb' //绑定元素
,url: "{:url('AliOssUpload/uploadFile')}" //上传接口
,data:{use:'article_thumb'}
,done: function(res){
//上传完毕回调
if(res.code == 200) {
//前台显示预览图
$('#demo1').attr('src',res.data);
$('#upload-thumb').append('<input type="hidden" name="thumb" value="'+ res.data +'">');
} else {
layer.msg(res.msg);
}
}
,error: function(){
//请求异常回调
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
});
});
</script>

PHP 上传文件至阿里云OSS对象存储的更多相关文章

  1. 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手

    关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手   本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...

  2. vue + elementUi + upLoadIamge组件 上传文件到阿里云oss

    <template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...

  3. PHP上传文件到阿里云OSS,nginx代理访问

    1. 阿里云OSS创建存储空间Bucket(读写权限为:公共读) 2. 拿到相关配置 accessKeyId:********* accessKeySecret:********* endpoint: ...

  4. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  5. SpringBoot整合阿里云OSS对象存储实现文件上传

    1. 准备工作: 一.首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间. 二.创建Access Keyan按要求创建进行,这里的方法步骤我就不展现出来了,你们可以自行查询阿里云文 ...

  6. iOS使用阿里云OSS对象存储 (SDK 2.1.1)

    最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...

  7. Java使用阿里云OSS对象存储上传图片

    原 Java使用阿里云OSS对象存储上传图片 2017年03月27日 10:47:28 陌上桑花开花 阅读数 26804更多 分类专栏: 工作案例总结 版权声明:本文为博主原创文章,遵循CC 4.0 ...

  8. C# .net Ueditor实现图片上传到阿里云OSS 对象存储

    在学习的时候,项目中需要实现在Ueditor编辑器中将图片上传到云储存中,老师演示的是上传到又拍云存储,既然看了一遍,直接照搬不算本事,咱们可以依葫芦画瓢自己来动手玩玩其它的云存储服务. 现在云计算产 ...

  9. 阿里云Oss对象存储

    将文件保存到阿里云上. 1.添加对象存储OSS空间 (新建Bucket) 可以在阿里云后台对象存储里面添加,也可以通过api添加.添加之后设置权限. skd使用. 1安装 Aliyun.OSS.SDK ...

随机推荐

  1. css实现一个电影卡片

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  2. python3 多线程爬虫模板

    原文:https://www.jianshu.com/p/06ae2373f560 1 import threading # 多线程模块 2 import queue # 队列模块 3 import ...

  3. MIT 6.824拾遗(一)聊聊basic-paxos

    前言 The Paxos algorithm, when presented in plain English, is very simple. ------ Lamport,<Paxos Ma ...

  4. HOOK实现游戏无敌-直接修改客户端-2-使用VS来处理

    HOOK实现游戏无敌-直接修改客户端-2-使用VS来处理 大概流程 1 首先找到游戏进程,打开进程 2 申请一段内存空间来保存我们的硬编码(virtualAllocEx) 3 找到攻击函数,修改函数的 ...

  5. 通过《第一行代码》学习 Android 开发

    第一行代码 Android --第 2 版-- 郭霖 著 第 1 章:开始启程--你的第一行 Android 代码 •1.2 手把手带你搭建开发环境  Android Studio 的安装及配置  A ...

  6. mysql中FIND_IN_SET函数用法

    本篇文章主要介绍mysql中FIND_IN_SET函数用法,用来精确查询字段中以逗号分隔的数据 以及其与 like 和 in 的区别 1.问题发现 之前在做工作任务时有这么一个需求:需要用接口所传的服 ...

  7. 201871030139-于泽浩 实验二 个人项目D{0-1} KP

    201871030139-于泽浩 实验二 个人项目D{0-1} KP 项目 内容 课程班级博客连接 2018级卓越班 这个作业要求连接 软件工程个人项目 我的课程学习目标 (1)掌握软件项目个人开发流 ...

  8. dubbo的spi思想是什么?

    spi,简单来说,就是service provider interface,说白了是什么意思呢,比如你有个接口,现在这个接口有3个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要s ...

  9. ECDSA密钥对生成以及在Token中的应用

    1 概述 本文主要讲述了如何利用Openssl生成ECDSA密钥对,并利用Auth0库进行Token生成及验证的过程. 2 ECDSA 2.1 简介 ECC(Elliptic Curve Crypto ...

  10. Scala进阶(1)—— 反射 object 和 class

    1. Scala 的 反射 关于 Scala 反射的具体内容,可以参考官方文档:https://docs.scala-lang.org/overviews/reflection/overview.ht ...