1.安装七牛云sdk
php composer.phar require qiniu/php-sdk
2.添加七牛云config文件 qiniuoss.php
return [
'secretKey' => 'n68WDcvKwcqpeisa-Nfasfasfasf', //密钥管理中查找
'accessKey' => 'gwqecqFqhdaBvuY-V6iIiaUwsFjg', //密钥管理中查找
'domain' => 'https://www.XXX.com/', //七牛域名
'bucket' => 'qiniuyun2020', //空间名称
'timeout' => 300, //超时时间
];
3.入口文件文件index.php 中添加这段代码
// 加载七牛云
require_once(__DIR__ .'/../vendor/qiniu/autoload.php');
4.控制器
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
/**
* 公用文件 - 图片、视频
* Class Search
* @package app\interfaces\controller\goods
*/
class Image extends BaseController
{
/**
* 公用上传图片
* @param RSACrypt $crypt
* @return array
*/
public function upload(RSACrypt $crypt)
{
$param = $crypt->request();
$file = Request::file();
if (!empty($file)) {
$view = $ret = [];
$config = config('qiniuoss.');
foreach ($file as $_file) {
if (!is_null($_file)) {
$info = $_file->getInfo();
$config = config('qiniuoss.');
$accessKey = $config['accessKey'];
$secretKey = $config['secretKey'];
$auth = new Auth($accessKey, $secretKey);
$bucket = $config['bucket'];// 要上传的空间
$token = $auth->uploadToken($bucket);// 生成上传 Token
$uploadMgr = new UploadManager();
$ossFileName = $param['type'] . '/file/' . date('Ymd') . '/' . md5(microtime()) . '.png';
list($ret, $err) = $uploadMgr->putFile($token, $ossFileName, $info['tmp_name']);
if ($err !== null) {
return ['code' => 0, 'data' => '上传失败'];
} else {
//返回图片的完整URL
return $crypt->response([
'code' => 0,
'message' => '上传成功',
'url' => $ret['key'],
'view_url' => $config['domain'] . $ret['key'],
], true);
}
}
}
}
return $crypt->response([
'code' => -1,
'message' => '未上传图片',
], true);
}
}