tp6整合腾讯云cos上传

2023-10-27

1.创建一个名为 composer.json的文件,内容如下:

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

2.执行以下命令,使用 Composer 安装。

php composer update

3.复制代码 我这里目录结构是 app\common\service

<?php
declare (strict_types = 1);

namespace app\common\service;


use Qcloud\Cos\Client;
use Qcloud\Cos\Exception\ServiceResponseException;
use think\Exception;

class TencentUpload
{
    // $srcPath 本地文件绝对路径
    // $type 文件mime类型
    // $dir 远程目录
    public static function upload($srcPath,$type,$dir)
    {

        // 腾讯云账户中的SecretId
        $SecretId = '************';
        // 腾讯云账户中的SecretKey
        $SecretKey = '**********';

        $region = "******"; //设置一个默认的存储桶地域

        $array =array(
            'region' => $region,
            'schema' => 'https', //协议头部,默认为http
            'credentials'=> array(
                'secretId'  => $SecretId,
                'secretKey' => $SecretKey,
            )
        );
        $cosClient=  new Client($array);

        $keyv = $dir.'/'.random(32); //随机文件名

        try {
            $bucket = "*********"; //存储桶名称 格式:BucketName-APPID
            $key = $keyv; //此处的 key 为对象键,对象键是对象在存储桶中的唯一标识

            $file = fopen($srcPath, "rb");

            if($file){
                try {
                    $result = $cosClient->putObject(
                        array(
                            'Bucket' => $bucket,
                            'Key' => $key,
                            'Body' => $file,//文件路径
                            'ContentType' => $type//文件类型
                        )
                    );
                    return json_encode(["code"=>0,"msg"=>'成功','data'=>'https://'.$result['Location']]);
                }catch (ServiceResponseException $e){
                    return json_encode(["code"=>-1,"msg"=>$e->getMessage()]);
                }

            }else{
                return json_encode(["code"=>-1,"msg"=>'非法文件']);
            }
        }catch (\Exception $e){
            return json_encode(["code"=>-1,"msg"=>$e->getMessage()]);
        }
     }
}

4.使用

$file = request()->file('file');

        try {
            validate(['image'=>'filesize:10240|fileExt:jpg,png,jpeg'])
                ->check([$file]);

            if($file){
                //传临时目录以及mime类型以及创建远程目录
                $res = \app\common\service\TencentUpload::upload($file->getPathname(),$file->getMime(),"pic1");

            }else{
                return Resultsfail([-1,$file->getError()]);
            }
        } catch (\think\exception\ValidateException $e) {
            return Resultsfail([-1,$e->getMessage()]);
        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tp6整合腾讯云cos上传 的相关文章

  • 递归获取数组的键并创建下划线分隔的字符串

    现在我得到了一个包含某种信息的数组 我需要从中创建一个表 例如 Student Address StreetAddress gt Some Street StreetName gt Some Name Marks1 gt 100 Marks
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input
  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • c++11新特性实战:智能指针

    c 11添加了新的智能指针 unique ptr shared ptr和weak ptr 同时也将auto ptr置为废弃 deprecated 但是在实际的使用过程中 很多人都会有这样的问题 不知道三种智能指针的具体使用场景 无脑只使用s
  • 【kali换源后报错:The repository ‘http://old.kali.org/kali moto InRelease‘ is not signed.的解决办法】

    问题描述 添加旧源 vim etc apt sources list 末行追加 deb http old kali org kali moto main non free contrib 更新源 apt get update 报错 Err
  • python,Pycharm导入自定义包

    1 Pycharm中如何让导入的自定义包生效 第一步 File gt Settsing gt Build Executions Deployment gt Console gt Python Console gt 勾选 add source
  • Android——使用Spinner实现下拉列表

    1 执行步骤 1 确定数据源 添加一个下拉列表项的list 2 定义适配器 添加数据源 为下拉列表定义一个数组适配器ArrayAdapter 3 为适配器设置下拉时的菜单样式 adapter setDropDownViewResource
  • 【Python项目】简易的密码本

    import json 名称文件 名称 json 账号文件 账号 json 密码文件 密码 json 名称 账号 密码 序列号 0 更新数据 with open 账号文件 as f 账号 json load f with open 名称文件
  • js代替eval的办法

    在滚滚的boring写代码的潮流中 eval 方法逐渐被淘汰 那我们可以用什么方法代替它呢 binggo 以下方法使用效果超出你的想象 function evalPro str var Fn Function return new Fn r
  • layui框架学习(5:面板)

    Layui中的菜单样式与面板结合比较紧密 在学习菜单之前 先熟悉Layui的面板样式 Layui的面板主要作为容器使用 其样式主要分为常规面板 卡片面板 折叠面板 含手风琴效果 Layui官网示例中还介绍了面板嵌套 本文后续一一介绍并验证
  • 图像描述算法排位赛:SceneXplain与MiniGPT-4谁将夺得桂冠?

    如果你对 AI 前沿感兴趣 本场 图像描述算法排位赛 绝对是你不能错过的 在这场较量中 SceneXplain 和 MiniGPT 4 将会比试 谁将摘得这场比赛的桂冠 直接上手体验 scenex jina ai 背景介绍 在 一张图就是一
  • php curl集成包的安装和实用

    下载curl集成包 https github com php mod curl 放在vendor目录下 加载curl包 实例化 vendor Curl src Curl Curl php pinJ new Curl 然后按照官网demo使用
  • 图像配准的方法

    转自 http blog sina com cn s blog 4b9b714a0100d5k5 html 图像配准的方法 1 基于特征的图像配准 基于特征的图像配准首先提取图像信息的特征 然后以这些特征为模型进行配准 特征提取的结果是一含
  • QT的ui文件中控件在cpp的调用

    点击然后右键 然后点击改变对象名称 改成如上图所示 即可在cpp函数中调用 进行操作
  • cdn搭建原理_什么叫cdn服务器?怎么部署?

    在现今的网络系统时期 各类互连网手机app异军突起 而互联网出現浏览卡屏或延时的状况也越来越非常广泛 以便处理不一样的互联网情况 人们常常会构建到不一样的虚拟主机来浏览互联网 cdn服务器也是列举这种 什么叫cdn服务器 cdn服务器英语全
  • CentOS7.x安装VNC实录

    不知不觉 centos已经到7 6了 在服务器操作系统中 centos是用的比较多的 占很大的比例 由于7 x版本和6 x版本有区别 最近安装了7 6的VNC 特记之 VNC需要系统安装的有桌面 如果是生产环境服务器 安装时使用的最小化安装
  • 学妹问我:OpenJDK是什么?作为师哥,必须万字详解屁颠屁颠奉上

    上一篇是分享的是 JVM虚拟机 了解Java堆中对象分配 布局和访问的全过程 这篇给大家分享 OpenJDK 1 OpenJDK 概述 OpenJDK 是 Java 平台标准版 Java SE 的免费开源实现 这是 Sun Microsys
  • python爬虫安装Xpath插件时遇到的问题

    在安装Xpath时 出现拖拉压缩包 记住一定是压缩包 下载后的插件是 crx后缀的文件 需要改变为压缩包的形式 后 在添加文件时 一直找不到压缩包 最后发现是压缩包后缀的问题 如图 是我的winr 压缩包软件 自动生成的压缩包 默认是rar
  • 数据聚合与分组运算

    标注 我用的是jupyterNotebook 一 分组与聚合的原理 在Pandas中 分组是指使用特定的条件将原数据划分为多个组 聚合在这里指的是 对每个分组中的数据执行某些操作 最后将计算的结果进行整合 分组与聚合的过程大概分为以下三步
  • nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

    问题描述 这个报错指的是结果无法映射 只需要把java实体与数据库表关系映射好就ok 一定要看清自己的配置文件 自己的数据库 处理思路整理 避免走弯路 1 首先验证是不是代码写出 String sql select count 1 from
  • Spring中@Autowired注解用法详解

    1 概述 Spring中IOC可以通过注解方式实现 只要在spring的配置文件applicationContext xml中配置开启了包扫描Spring会自动扫描指定包及其子孙包
  • 【Python三大结构练习2】

    目录 1 数字金额转换为中文大写金额 2 恺撒密码 3 大小写转换 1 数字金额转换为中文大写金额 描述 编写一函数 将数字金额转换为中文大写金额 设最高位考虑到亿 最低位考虑到分 如 数字金额为1023 445 转换为中文大写金额为 壹仟
  • tp6整合腾讯云cos上传

    1 创建一个名为 composer json的文件 内容如下 require qcloud cos sdk v5 gt 2 0 2 执行以下命令 使用 Composer 安装 php composer update 3 复制代码 我这里目录