php sdk下载:
http://developer.qiniu.com/code/v7/sdk/php.html
/*
* app3.0后台
*/
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Qiniu\Storage\BucketManager;
class app3admin{
private $accessKey;//qiniu accessKey
private $secretKey;//qiniu secretKey
private $bucket;//qiniu 存储空间名
private $bucketDomain;//存储空间绑定的域名
public function __construct()
{
}
/*
* 七牛配置信息
*/
private function qiniuConfig()
{
$this->accessKey = '你自己的';
$this->secretKey = '你自己的';
$this->bucket = '存储空间名';
$this->bucketDomain = '空间绑定的域名';
include './lib/qiniu7.0.7/autoload.php';
}
/*
* 请求方式
* @param return string get,post,ajax
*/
public function requestMethod()
{
$method=strtolower($_SERVER['REQUEST_METHOD']);
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])
&& (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') ){
$method='ajax';
}
return $method;
}
/*
* 上传到七牛
*/
public function uploadPic()
{
self::qiniuConfig();
$tmp_name = $_FILES['fileField']['tmp_name'];
$imageType = self::checkPic($tmp_name);
$picName = date('YmdHis', time()) . '.' . $imageType;
$auth = new Auth($this->accessKey, $this->secretKey);
$token = $auth->uploadToken($this->bucket);
$uploadMgr = new UploadManager();
// 上传文件到七牛
list($ret, $err) = $uploadMgr->putFile($token, $picName, $tmp_name);
if ($err !== null) {
$this->showDialog('上传到七牛失败');
} else {
$picUrl=$this->bucketDomain . $picName;
echo "";
$this->showDialog($picUrl);
}
}
/*
* 检查上传图片
* @param $tmp_name string 文件域上传产生的临时文件 $_FILES['fileField']['tmp_name']
* @param $alloSize 允许上传的大小 单位M 不填最大5M
* @param $alloType array 允许上传的类型
* @return string 图片扩展名,如 jpg
*/
public function checkPic($tmp_name,$alloSize=null,$alloType=null)
{
if(!isset($alloType)){
$alloType = array('jpg', 'jpeg', 'gif', 'png');
}
if(!isset($alloSize)){
$alloSize = 5;//5M
}
$imageInfo = getimagesize($tmp_name);//图片信息
//根据图片类型编号取扩展名,去掉.
$imageType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));
$imageSize = filesize($tmp_name);//文件大小
if (!in_array($imageType, $alloType)) {
self::showDialog('上传失败请重试');
}
if ($imageSize > $alloSize*1024*1024) {
self::showDialog('最大只允许上传'.$alloSize.'M的图片');
}
return $imageType;
}
/*
* 父窗口弹出警告
*/
function showDialog($msg)
{
echo "";
exit();
}
/*
* 从七牛删除
* @param $key string 七牛上文件的名称
*/
public function delFromQiniu($key)
{
self::qiniuConfig();
//初始化Auth状态
$auth = new Auth($this->accessKey, $this->secretKey);
//初始化BucketManager
$bucketMgr = new BucketManager($auth);
//删除$bucket 中的文件 $key
$err = $bucketMgr->delete($this->bucket, $key);
if ($err !== null) {
$ret['result']=0;
$ret['msg']='从七牛上删除失败';
} else {
$ret['result']=1;
$ret['msg']='从七牛上删除成功';
}
echo json_encode($ret);
}
}
/*---------------------------------------------------以下为业务控制----------------------------------------------*/
$obj=new app3admin();
$method=$obj->requestMethod();//请求方式
if($method=='post'){//上传图片
$obj->uploadPic();//上传到七牛
}
if($method=='ajax'){
$ajaxAction=$_POST['ajaxAction'];
switch ($ajaxAction){
case 'delfromqiniu'://从七牛上删除
$obj->delFromQiniu(trim($_POST['key']));
break;
default:
}
}
if($method!='get'){//get时加载模板,否则只进行业务操作
exit();
}