composer安装:
composer require qiniu/php-sdk
配置使用:
在tp5.1的配置文件app.php中配置七牛云的参数
'qiniu' => [ 'accesskey' => '你的accesskey', 'secretkey' => '你的secretkey', 'bucket' => '存储空间', 'domain' => '域名' ],
前端使用webuploader上传
/*****加载AJAX上传图片******/// 调用形式 Upload(元素编号,允许上传商品数量);function Upload(i,num){
sumimg(num);// var token = 'ZTEpdpZn1J1fLzgTfNtLXvRmcu0bjcnTUUhoQsEW';
var uploader = WebUploader.create({
auto: true,
swf: '/static/extends/lib/webuploader/0.1.5/Uploader.swf',//文件接收服务端。
server: '/admin/tool/uploadImg',//文件接收服务端。
pick: '#filePicker'+i,//指定选择文件的按钮容器
fileNumLimit: num,//文件数量 compress: { // 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
},
accept: { //指定接受哪些类型的文件
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
uploader; //当文件被加入队列以后触发
uploader.on('fileQueued',function(file){ var $li = $( '<div id="' + file.id + '" class="file-item thumbnail" onclick="delUpload(this,'+i+','+num+');">' +
'<input type="hidden" name="img[]" id="'+file.id+'id" />'+
'<img>' +
'<div class="info">开始上传图片...</div>' +
'</div>'
),
$img = $li.find('img');
$("#fileList"+i).append($li);//图片添加到容器
var sum = $("#fileList"+i).find('.file-item').length; if(sum >= num){
$("#filePicker"+i).attr('style','display:none;');
} // 创建缩略图显示
uploader.makeThumb(file,function(error,src){ if (error){
$img.replaceWith('<span>不能预览</span>'); return;
}
$img.attr('src',src);
},200,200);
}); // 文件上传过程中创建进度百分比实时显示。
uploader.on('uploadProgress',function(file,percentage){
$("#"+file.id+" .info").html('正在上传('+parseInt(percentage*100)+'%)');
}); //文件上传返回成功,判断是否成功上传到七牛
uploader.on('uploadSuccess', function(file,response){ if(response.code == 0){
$("#"+file.id+" .info").html('上传失败');
}else{
sumimg(num);
$("#"+file.id+" .info").html('上传完成,点击图片可删除');
$( '#'+file.id ).addClass('upload-state-done');
$( '#'+file.id+"id").val(response.data);//赋值到input }
});
}后台代码:
调用七牛
use Qiniu\Auth; use Qiniu\Config; use Qiniu\Storage\BucketManager; use Qiniu\Storage\UploadManager;
上传图片:
// 初始化签权对象
$auth = new Auth($this->_accessKey,$this->_secretKey);
$token = $auth->uploadToken($this->_bucket); // 构建 UploadManager 对象
$uploadMrg = new UploadManager(); // 上传文件到七牛
$files = $_FILES;
$values = array_values($files);
$saveName = hash_file('sha1', $values[0]['tmp_name']) . time();
list($ret, $err) = $uploadMrg->putFile($token, $saveName, $values[0]['tmp_name']); if ($err !== null) {
$return = [ 'code' => 0, 'msg' => '上传图片失败'
];
} else {
$return = [ 'code' => 1, 'msg' => '上传成功', 'data' => 'http://' . $this->_domain . '/' . $ret['key']
];
} return json($return);删除图片:
$img = Request::param('name'); $imgArr = explode('/',$img); $delImgName = end($imgArr); // 初始化签权对象
$auth = new Auth($this->_accessKey,$this->_secretKey); $config = new Config();// 管理资源
$bucketManager = new BucketManager($auth,$config);// 删除文件操作
$res = $bucketManager -> delete($this->_bucket,$delImgName); if (is_null($res) || $res == null) { // 为null成功
$return = [ 'code' => 1,
'msg' => '删除成功'
];
}else{ $return = [ 'code' => 0,
'msg' => '删除失败'
];
} return json($return);