**引入七牛云擴(kuò)展包** ```php composer require qiniu/php-sdk ``` **創(chuàng)建文件上傳配置文件 `config/upload.php`** ```php <?php // 文件上傳配置 return [ 'qiniu' => [ // 存儲(chǔ)空間名稱 'bucket' => 'itqaq', // 存儲(chǔ)空間的對應(yīng)域名 'domain' => '//qbx51pqrr.bkt.clouddn.com', // 用于簽名的公鑰 AccessKey 'accessKey' => 'l_OnndRIVj17ZwIKMOZBLorh5dK4BKIxxxxxx', // 用于簽名的私鑰 SecretKey 'secretKey' => '7fXF7wbOWcC5pUJKmGz3N8DU6ZB7u3exxxxxx', ], ]; ``` **七牛云文件上傳封裝** ```php <?php namespace app\admin\controller; use think\facade\Config; use Qiniu\Auth; use Qiniu\Storage\UploadManager; /** * 七牛云封裝類 */ class Qiniu { /** * 文件上傳到七牛云 * @return 在七牛云上的文件名 */ public static function upload($field = '', $dirname = '') { // 存儲(chǔ)空間名稱 $bucket = Config::get('upload.qiniu.bucket'); // 存儲(chǔ)空間對應(yīng)的域名 $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) { // 臨時(shí)文件路徑 $tmpName = $file->getRealPath(); // 初始化鑒權(quán)對象 $auth = new Auth($accessKey, $secretKey); // 生成上傳Token $token = $auth->uploadToken($bucket); // 上傳管理類 構(gòu)建UplaodManager對象 $uploadMgr = new UploadManager(); // 原始文件后綴名 $ext = $file->getOriginalExtension(); // 目錄名 if ($dirname != '') $dirname .= '/'; // 隨機(jī)文件名 $path = $dirname . md5(microtime(true) . mt_rand(1, 1e9)) . '.' . $ext; $info = $uploadMgr->putFile($token, $path, $tmpName); // 上傳到七牛云后的新名稱 return $domain . '/' . $info[0]['key']; } else { return '沒有文件上傳'; } } } ``` **使用示例** ```php //qbx51pqrr.bkt.clouddn.com/article/content/1e0ba811a443c5a38e1e615f35526bc3.jpg \app\admin\controller\Qiniu::upload('pic', 'article/content'); ```