php sdk下载:
http://developer.qiniu.com/code/v7/sdk/php.html
<?php
/*
* 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 "<script>window.parent.document.getElementById('qiniu_key').value='".$picUrl."';</script>";
$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 "<script>window.parent.document.getElementById('tishi').innerHTML='".$msg."';</script>";
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();
}
- 相关文章
- 大型网站及面临的问题及解决方法
- 网页静态化
- thinkphp网页静态化
- sphinx全文索引
- 高并发时表锁与文件锁
- 海量订单数据存储方法
- 高并发时商品库存处理方法
- 高并发测试及系统状态监测
- PHP解决抢购、秒杀、抢楼、抽奖等
- php多线程例子
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- centos7.4 64位下swoole安装及配置
- laravel页面静态化的方法
- navicate连接mycat报1184错误
- 单点登录sso原理及php实现方式及de
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:607篇
- 浏览数:916013