为了加快网站访问速度、降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在Laravel项目中的使用

1、申请腾讯云对象存储、创建Bucket、获取APPID等参数,配置在.ENV文件

2、下载官方SDK

在composer.json文件添加如下代码

{
"require": {
"qcloud/cos-sdk-v5": ">=1.0"
}
}

composer install

3、在公共文件中引入SDK

use Qcloud\Cos\Api;

4、使用SDK上传文件

 function uploadImg($fileName,$realPath){
$cosClient = new Qcloud\Cos\Client(array('region' => env('REGION'),
'credentials'=> array(
'appId' => env('APPID'),
'secretId' => env('SECRETID'),
'secretKey' => env('SECRETKEY'))));
try {
$result = $cosClient->putObject(array(
'Bucket' => env('BUCKET'),
'Key' => $fileName,
'Body' => fopen($realPath, 'rb'),
'ServerSideEncryption' => 'AES256'));
} catch (\Exception $e) {
echo "$e\n";
echo '</br> 失败';
}
}

其中Key是腾讯云要上传的路径加文件名,Body是现文件的路径

5、控制器调用上传方法

public function testv5()
{
$file = Input::file('logo');
//判断是否为空
if(empty($file)){
return back()->withErrors('请上传logo')->withInput();
}
//取得上传文件的大小
$sizes = $file->getSize();
$size = $sizes/1024;
if($size > UPLOAD_IMAGE_MAXSIZE){
return back()->withErrors(['上传的图片不能超过2M'])->withInput();
}
//格式不对提醒
$ext = $file->getClientOriginalExtension(); // 扩展名
$allowed_extensions = explode('|',UPLOAD_IMAGE_ALLOWED);
if ($ext && !in_array($ext, $allowed_extensions)) {
return back()->withErrors(['您只能上传png、jpg、jpeg或者gif格式的文件'])->withInput();
}
// 获取文件相关信息
$realPath = $file->getRealPath(); //临时文件的绝对路径
//上传路径
$fileName =env('FILEPATH').str_random(10).time().'.'.$ext; //拼接图片名
uploadImg($fileName,$realPath);
}

6、上传成功便可以在腾讯云后台看到上传的文件及路径了

PS:更多API接口如文件夹的创建、删除等请查看官方快速入门文档接口文档以及demo

Laravel项目使用腾讯云对象存储上传图片(cos-php-sdk-v5版本)的更多相关文章

  1. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  2. php 腾讯云 对象存储V5版本 获取返回的上传文件的链接方法

    腾讯云 对象存储V5版本 文档地址:https://github.com/tencentyun/cos-php-sdk-v5 调用简单文件上传方法: 返回数据如下 Array ( [data:prot ...

  3. Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  4. .NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题

    开门见山地说一下问题的原因:调用 web api 时请求头中多了双引号,请求体中少了双引号. 腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest ...

  5. 腾讯云--对象存储cos绑定自定义域名

    1.登录腾讯云控制台,找到对象存储一栏 2.选择一个你想绑定域名的存储桶 3.进入你选择的存储桶,点击域名管理 4.选择自定义源站域名.在域名处填写你要设置的自定义域名,在源站类型处选择静态网站源站, ...

  6. 腾讯云对象存储COS新品发布——智能分层存储,自动优化您的存储成本

    近日,腾讯云正式发布对象存储新品--智能分层存储,能够根据用户数据的访问模式,自动地转换数据的冷热层级,为用户提供与标准存储一致的低延迟和高吞吐的产品体验,同时具有更低的存储成本. 熟悉数据存储的用户 ...

  7. 阿里云对象存储OSS及CDN加速配置

    目录 十大云存储服务商 1. 登陆阿里云官网,开通对象存储服务 OSS 2. 创建存储空间 3. 绑定自定义域名 4. 配置阿里云CDN加速 5. 购买阿里云免费SSL证书 6. 阿里云CDN配置HT ...

  8. 阿里云对象存储OSS访问控制

    阿里云对象存储OSS的Android SDK提供了STS鉴权模式和自签名模式来保障移动终端的安全性. OSS可以通过阿里云STS (Security Token Service) 进行临时授权访问.交 ...

  9. java开发之阿里云对象存储OSS和云数据库Memcache的使用

    web开发中标配:aliyun ECS(阿里云服务器),aliyun RDS(阿里云数据库),aliyun OSS(阿里云对象存储),aliyun Memcache(阿里云缓存数据库). 今天就介绍下 ...

随机推荐

  1. Delphi函数详解:全局函数,内部函数,类的成员函数,类的静态方法

    1. Delphi中的全局函数 //要点: 需要给其他单元调用, 必须在 interface 声明, 但必须在 uses 区后面 unit Unit1; interface uses   Window ...

  2. 解决IIS的Server Application Error

    问题描述一下: Server Application ErrorThe server has encountered an error while loading an application dur ...

  3. Codeforces Round #519 by Botan Investments翻车记

    A:枚举答案即可.注意答案最大可达201,因为这个wa了一发瞬间爆炸. #include<iostream> #include<cstdio> #include<cmat ...

  4. NOI2018 D1T1 [NOI2018]归程 解题报告

    P4768 [NOI2018]归程 题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 \(n\) 个节点.\(m\) 条边的无向连通图(节点的编号从 \ ...

  5. bzoj2002: [Hnoi2010]Bounce 弹飞绵羊 分块

    这个题体现了分块不只是最大值最小值众数次数,而是一种清真的思想. 我们把整个序列分块,在每个块里处理每个位置跳出这个块的次数和跳出的位置,那么每次修改n0.5,每次查询也是,那么O(m* n0.5)的 ...

  6. vector 基础

    http://classfoo.com/ccby/article/jnevK Vector的存储空间是连续的,list不是连续存储的 vector初始化 vector<int>v; //不 ...

  7. 处理WebService asmx的经验

    项目的需求,需要和一个.net系统进行数据交换,合作方提供了一个WebService接口.这个与一般的PHP POST或GET传值再查库拿数据的思路有点不一样,需要用到SOAP模块,处理方法也很简单, ...

  8. POJ3020:Antenna Placement(二分图匹配)

    Antnna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11093   Accepted: 5459 ...

  9. javascript实现瀑布流效果(固定宽度)

    HTML代码: <div id="content"> <div class="box"> <div class="img ...

  10. Java节假日算法

    类:Vacation package test; import java.io.Serializable; import java.util.Date; public class Vacation i ...