1.申请Access Key ID和Access Key Secret,以及创建好你的Bucket

2.通过composer安装oss插件

通过cmd,到项目的目录下,输入下面的指令。

composer require aliyuncs/oss-sdk-php

3.配置好oss信息,在config.php中

'aliyun_oss' => [
'accessKeyId' => '', //您的Access Key ID
'accessKeySecret' => '', //您的Access Key Secret
'endpoint' => '', //阿里云oss 外网地址endpoint
'bucket' => '', //Bucket名称
'url' => '' // 访问的地址
]

4.上传图片,并处理到aliyun中

function aliyun($savePath,$category='',$isunlink=false,$bucket="yunlutong-img"){
$accessKeyId = config('aliyun_oss.accessKeyId');//去阿里云后台获取秘钥
$accessKeySecret = config('aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥
$endpoint = config('aliyun_oss.endpoint');//你的阿里云OSS地址
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 判断bucketname是否存在,不存在就去创建
if( !$ossClient->doesBucketExist($bucket)){
$ossClient->createBucket($bucket);
}
$category=empty($category)?$bucket:$category; $savePath = str_replace("\\","/",$savePath); $object = $category.'/'.$savePath;//想要保存文件的名称
$file = './uploads\\'.$savePath;//文件路径,必须是本地的。 try{
$ossClient->uploadFile($bucket,$object,$file);
if ($isunlink==true){
unlink($file);
}
}catch (OssException $e){
$e->getErrorMessage();
}
$oss=config('aliyun_oss.url');
return $oss."/".$object;
}

记得要在类的头部引入,

use \OSS\OssClient;

在图片长传之后,处理到阿里云oss中,并将地址保存到数据库

// 添加
$file = request()->file('img'); // 移动到框架应用根目录/public/uploads/ 目录下
$upload_info = $file->move(config('upload_path'));
if(!$upload_info){
// 上传失败获取错误信息
$this->error($file->getError());
} $oss_img_url = $this->aliyun($upload_info->getSaveName(),'live'); $data['title'] = input('post.title');
$data['info'] = input('post.info');
$data['url'] = input('post.url');
$data['sort'] = input('post.sort');
$data['addtime'] = time();
$data['img'] = $oss_img_url;// '/uploads\\'.$upload_info->getSaveName(); $res = db("live_banner")->insert($data);
if ($res) {
$this->success('操作成功', url('LiveExtra/bannerList'));
} else {
$this->error('操作失败');
}

tp5使用oss存储图片的更多相关文章

  1. 阿里云oss存储图片

    单线程版-上传网络流 import pymysql import oss2 import requests import logging # 添加日志 logging.basicConfig( lev ...

  2. 阿里云CDN+OSS完成图片加速

    我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...

  3. php将图片存储在阿里云oss存储上

    创建两个方法 1.上传方法 use OSS\OssClient; use think\Config; use OSS\Core\OssException; /** * 存储文件 * * @param ...

  4. android 存储图片到data目录和读取data目录下的图片

    , fos); } ); Bitmap.CompressFormat localCompressFormat = Bitmap.CompressFormat.PNG; bitmap.compress( ...

  5. WCF存储图片到指定文件夹下

    string path = System.IO.Directory.GetCurrentDirectory() + @"\POIImages\"; Guid imgid = Gui ...

  6. SQL 2008存储图片和读取图片

    用SQL Server存储文字数据非常easy实现,假设用SQL Server存储图片呢?大家有没有实现思路呢?如今我用一个Demo来为大家提供一种在SQL Server中存储图片的思路. 场景:在s ...

  7. 使用jdbc存储图片和大文本

    package cn.itcast.i_batch; import java.sql.Connection; import java.sql.PreparedStatement; import jav ...

  8. SQL反模式学习笔记12 存储图片或其他多媒体大文件

    目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点:     1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...

  9. .NET 使用 Azure Blob 存储图片或文件

    使用的是VS2017 一.先使用 NuGet 获取这两个包. 执行以下步骤: 在“解决方案资源管理器”中,右键单击你的项目并选择“管理 NuGet 包”. 1.在线搜索“WindowsAzure.St ...

随机推荐

  1. NYOJ 915 +-字符串【贪心】

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描写叙述 Shiva得到了两个仅仅有加号和减号的字符串,字串长度同样.Shiva一次能够把一个加号和它相邻的减号交换 ...

  2. Linux防火墙限制指定port仅仅能由指定IP訪问

    须要对redis的端口做限制,仅仅能让公司内指定IP的机器訪问 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A ...

  3. MS UI Automation简介

    转自:http://blog.csdn.net/ffeiffei/article/details/6637418 MS UI Automation(Microsoft User Interface A ...

  4. yum概述配置

    YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  5. WPF 基础

    关于布局的规则 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸 不要将界面元素设置成与屏幕坐标相关 容器 ...

  6. Linux与Windows信息交互快捷方法

    要把windows上的D盘挂载的Linux上,首先要知道windows的用户名和密码 假设用户名是administrator,密码是123456 首先,在linux上创建一个挂载的目标目录 mkdir ...

  7. 【原创】java中各种集合类的实现浅析

    [LinkedList] LinkedList使用了链表来实现List功能,而且是双向循环链表,它的Entry定义如下: private static class Entry<E> { / ...

  8. 企业微信H5支付返回不到自己指定的结果页面

    项目:vue做的H5项目,嵌入到企业微信里 发现的问题:支付完成后的跳转页面 跳转不到自己指定的页面 问题在于:调支付接口时,redirectUrl: document.location.protoc ...

  9. ztree连接数据库,实现下拉菜单

    $(document).ready(function(){ var treeObj = $("#treeDemo"); $.fn.zTree.init(treeObj, setti ...

  10. django-数据库的查询集

    1.curd(增删改查) 对于数据库,作为一名开发人员并不会感到陌生,那么数据库中的查询集是怎么一回事呢? 2.数据库的查询集 查询集这个概念存在django框架中,存在于ORM(object rel ...