为了加快网站访问速度、降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在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. elasticsearch 6.2.3安装ik分词

    下载 zip文件 上传到服务器 https://github.com/medcl/elasticsearch-analysis-ik/releases unzip elasticsearch-anal ...

  2. C# 获取方法所在的 命名空间 类名 方法名

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  3. Zebra - zebra command to get printer error and warning status

    1 Flag2 Nibble 16-93 Nibble 8-44 Nibble 35 Nibble 26 Nibble 1

  4. Java IO 流 体系结构图

  5. 解决jQuery load()加载GB2312页面时出现乱码

    jquery的字符集是utf-8,load方法加载完GB2312编码静态页面后,出现中文乱码. 这是jQueryAJAX.html <!DOCTYPE html PUBLIC "-// ...

  6. 斜率dp+cdq分治

    写在前面 这个东西应该是一个非常重要的套路......所以我觉得必须写点什么记录一下,免得自己忘掉了 一直以来我的斜率dp都掌握的不算很好......也很少主动地在比赛里想到 写这个的契机是noi.a ...

  7. BZOJ4785 [Zjoi2017]树状数组 【二维线段树 + 标记永久化】

    题目链接 BZOJ4785 题解 肝了一个下午QAQ没写过二维线段树还是很难受 首先题目中的树状数组实际维护的是后缀和,这一点凭分析或经验或手模观察可以得出 在\(\mod 2\)意义下,我们实际求出 ...

  8. C&C++——C与C++知识点

    C++知识点系列之一(转+整理) 编程时类声明后面千万不要忘了加分号,不然会出现很多错误!! c系列之一一.#include “filename.h”和#include<filename.h&g ...

  9. Java多线程1:Java中sleep,wait,yield,join的区别

    1.sleep()方法 在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”.不推荐使用. sleep()使当前线程进入阻塞状态,在指定时间内不会执行. 2.wait()方法 在其他线程调用 ...

  10. 对比append插入数据产生的redo量

    --版本信息 SELECT * FROM v$version; Oracle - Prod PL - Production CORE Production TNS - Production NLSRT ...