zoukankan      html  css  js  c++  java
  • TP5.1 TP6上传七牛云空间文件

    1.  TP框架 目录cmd 运行  `composer require qiniu/php-sdk`

      文件自动下载到 tp5.comvendorqiniu

    2.TP框架目录 config目录下 新建文件upload.php

      

    <?php
    // 文件上传配置
    return [
        'qiniu' => [
            // 存储空间名称 填写自己的
            'bucket'    => 'heisi',
            // 存储空间的对应域名 填写自己的
            'domain'    => 'kodo.****.com',
            // 用于签名的公钥 AccessKey 填自己的
            'accessKey' => 'xxxxxx',
            // 用于签名的私钥 SecretKey 填自己的
            'secretKey' => 'xxxxxx',
        ],
    ];

    3. 封装一个静态方法 用于  七牛云文件上传

      

    <?php
    namespace appdemocontroller;
    
    
    use thinkfacadeConfig;
    use QiniuAuth;
    use QiniuStorageUploadManager;
     /**
     * 七牛云封装类
     */
    
    class Qiniu
    {
        /**
         * 文件上传到七牛云
         * @return 在七牛云上的文件名
         */
      
    
        public static function upload($field = '', $dirname = '')
        {
               
            // 存储空间名称
            $bucket    = Config::get('upload.qiniu.bucket');
            // 存储空间对应的域名
            $domain = Config::get('upload.qiniu.domain');
            // 用于签名的公钥 AK
            $accessKey = Config::get('upload.qiniu.accessKey');
            // 用于签名的私钥 SK
            $secretKey = Config::get('upload.qiniu.secretKey');
            $file = request()->file($field);
            if ($file) {
             
                // 临时文件路径
                $tmpName = $file->getRealPath();
                // 初始化鉴权对象
                $auth      = new Auth($accessKey, $secretKey);
                // 生成上传Token
                $token     = $auth->uploadToken($bucket);
                // 上传管理类 构建UplaodManager对象
                $uploadMgr = new UploadManager();
                
    
              
                // 输出 后缀 
                $arr =   $file->getInfo();
                $ext=$arr['name'];
                $temp = pathinfo($ext);
                $ext=$temp['extension'];
                // dump($ext);
                // die();      
    
                // $ext = $file->getOriginalExtension();  TP6 后缀可以换成这个
    
    
                // 目录名
                if ($dirname != '') $dirname .= '/';
                // 随机文件名
                $path = $dirname . md5(microtime(true) . mt_rand(1, 1e9)) . '.' . $ext;
                $info = $uploadMgr->putFile($token, $path, $tmpName);
                // 上传到七牛云后的新名称
                return $domain . '/' . $info[0]['key'];
            } else {
                return '没有文件上传';
            }
        }
    }

    演示: 

    方法:

      public function shangchuan(){
            
            if ( request()->isPost() ) 
            {
            return      appdemocontrollerQiniu::upload('headimgurl', 'article/content');     
            }
             return view();
    
        }

    前台:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
        <div class="form-group" style="margin-bottom: 25px;">
            <label for="" class="col-sm-2 control-label no-padding-right"></label>
            <div class="col-sm-6">
                <input type="file" class="form-control" id="headimgurl" name="headimgurl" 
                style="cursor: pointer;">
                <img src="" id="headimgurl-view">
            </div>
            <p class="help-block col-sm-4 red">* 必填</p>
        </div>
    
         <button type="submit" class="btn btn-primary">添加</button>
        </form>
    </body>
    </html>

    访问方法即可 上传,上传成功 返回文件名

    经原文 https://itqaq.com/index/art/8.html

     

  • 相关阅读:
    C#之枚举
    C#之判断字母大小、字母转ACII码
    C#之BF算法
    md5如何实现encodePassword加密方法
    基本配置及安全级别security-level
    js中“原生”map
    web.xml讲解
    java application指的是什么
    .conf、.bak是什么格式
    Maven系列--web.xml 配置详解
  • 原文地址:https://www.cnblogs.com/79524795-Tian/p/14738330.html
Copyright © 2011-2022 走看看