Laravel项目使用腾讯云对象存储上传图片(cos-php-sdk-v5版本)
为了加快网站访问速度、降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在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版本)的更多相关文章
- 微信小程序基于腾讯云对象存储的图片上传
在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...
- php 腾讯云 对象存储V5版本 获取返回的上传文件的链接方法
腾讯云 对象存储V5版本 文档地址:https://github.com/tencentyun/cos-php-sdk-v5 调用简单文件上传方法: 返回数据如下 Array ( [data:prot ...
- Docsify+腾讯云对象存储 COS,一键搭建云上静态博客
最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...
- .NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题
开门见山地说一下问题的原因:调用 web api 时请求头中多了双引号,请求体中少了双引号. 腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest ...
- 腾讯云--对象存储cos绑定自定义域名
1.登录腾讯云控制台,找到对象存储一栏 2.选择一个你想绑定域名的存储桶 3.进入你选择的存储桶,点击域名管理 4.选择自定义源站域名.在域名处填写你要设置的自定义域名,在源站类型处选择静态网站源站, ...
- 腾讯云对象存储COS新品发布——智能分层存储,自动优化您的存储成本
近日,腾讯云正式发布对象存储新品--智能分层存储,能够根据用户数据的访问模式,自动地转换数据的冷热层级,为用户提供与标准存储一致的低延迟和高吞吐的产品体验,同时具有更低的存储成本. 熟悉数据存储的用户 ...
- 阿里云对象存储OSS及CDN加速配置
目录 十大云存储服务商 1. 登陆阿里云官网,开通对象存储服务 OSS 2. 创建存储空间 3. 绑定自定义域名 4. 配置阿里云CDN加速 5. 购买阿里云免费SSL证书 6. 阿里云CDN配置HT ...
- 阿里云对象存储OSS访问控制
阿里云对象存储OSS的Android SDK提供了STS鉴权模式和自签名模式来保障移动终端的安全性. OSS可以通过阿里云STS (Security Token Service) 进行临时授权访问.交 ...
- java开发之阿里云对象存储OSS和云数据库Memcache的使用
web开发中标配:aliyun ECS(阿里云服务器),aliyun RDS(阿里云数据库),aliyun OSS(阿里云对象存储),aliyun Memcache(阿里云缓存数据库). 今天就介绍下 ...
随机推荐
- lintcode-125-背包问题 II
125-背包问题 II 给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大? 注意事项 A[i], V[i], n, m均为整数.你不能将物品进行切分. ...
- 弹框中的elment-form在弹框重新打开后,怎么初始化验证信息
如果弹框关闭前有错误提示,弹框重新打开,由于没重新刷新页面,该错误还是存在.... 解决办法:弹框中的内容写成一个组件,prop接收父元素弹框的状态,并监听且reset表格 1. cnpm insta ...
- redis集群如何清理前缀相同的key
最近经常收到redis集群告警,每天收到50多封邮件,实在不胜其烦,内存不够用,原因是有一些无用的key(约3000万)占用内存(具体不说了).这部分内存不能被释放. 原来的定期清理脚本的逻辑: 打开 ...
- sql in()批量操作
//批量修改 update 表A set A.name='n' where A.id in(字符串); //批量删除 delete from 表名称 where 列名称 ...
- ashx文件和aspx
ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看: <%@ WebHandler Language="C#" Class="Handler&q ...
- [NOIP2018 TG D2T1]旅行
题目大意:$NOIP\;TG\;D2T1$ 题解:一棵树的很简单,第一个点一定是$1$,只需要对每个节点,找最小的没有访问过的节点访问即可,我写的是$O(n\log_2n)$. 考虑基环树的部分,一个 ...
- bzoj2348
实在不懂为啥网上的题解都是二分,本人没写二分,wa的很惨结果竟然是printf("%d")的锅,改了就A了 2348: [Baltic 2011]Plagiarism Time L ...
- POJ 1050 To the Max 二维最大子段和
To the MaxTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 52281 Accepted: 27633Description ...
- HDU1828 Picture 线段树+扫描线模板题
Picture Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- angular js自定义service的简单示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...