为了加快网站访问速度、降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在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. Spring Boot学习(一):入门篇

    目录 Spring Boot简介 Spring Boot快速搭建 1 新建项目 2 运行项目 3 设置spring boot可以热部署(修改后端代码后,自动部署,不用手动部署) 3.1:配置pom.x ...

  2. C#与Javascript变量、函数之间的相互调用

    原文地址:http://blog.csdn.net/wonsoft/article/details/2595743 C#与Javascript变量.函数之间的相互调用  一.javascript调用C ...

  3. Jlink 软件断点和硬件断点

    调试2440 RAM拷贝至SDRAM遇到的问题 汇编代码主要是初始化一些寄存器,关狗,初始化时钟,初始化存储管理器以便访问内存,然后将SoC上4k RAM数据拷贝至SDRAM,然后在SRAM里面运行, ...

  4. oracle分区技术提高查询效率

    概述: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件 ...

  5. BZOJ4318 OSU!(动态规划+概率期望)

    设f[i][0/1]为考虑前i位,第i位为0/1时的期望得分(乘以是0/1的概率).暴力转移显然.前缀和优化即可. 但是这个前缀和精度无法承受,动不动就nan. 考虑增加一位的贡献.若之前后缀1的个数 ...

  6. [Leetcode] search a 2d matrix 搜索二维矩阵

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  7. Ubuntu下安装LNMP之php7的安装并配置Nginx支持php及卸载php

    据了解,php7是比之前的版本性能快很多的.http://php.net/get/php-7.2.2.tar.gz/from/a/mirror 安装前也可提前将相关依赖库安装好,或者在安装php时若安 ...

  8. SICAU-OJ:要我唱几首歌才能够将你捕捉

    要我唱几首歌才能够将你捕捉 题意: 有N种颜色的牛,现在可以执行以下两种操作: 1.抓捕一只牛,代价为ai: 2.花费x的代价使用魔法,让所有颜色加1,N会变为1. 求得到N种颜色的牛最少花费的代价. ...

  9. javascript中top、clientTop、scrollTop、offsetTop的讲解

    下面结合各上图介绍一下各个属性的作用: 一.offsetTop属性: 此属性可以获取元素的上外缘距离最近采用定位父元素内壁的距离,如果父元素中没有采用定位的,则是获取上外边缘距离文档内壁的距离.所谓的 ...

  10. HDU5748---(记录每个元素的 最长上升子序列 nlogn)

    分析: 给一个序列,求出每个位置结尾的最长上升子序列 O(n^2) 超时 #include "cstdio" #include "algorithm" #def ...