<?php
USE Qiniu\Auth;
USE Qiniu\Storage\BucketManager;
USE Qiniu\Storage\UploadManager;
require "QiqniuSdk/autoload.php";
Class Qiniu{
private $Access_Key;
private $Secret_Key;
private $bucket;
private $domain;
private $path='qnfile'; //默认目录
private $symbol='_'; //默认分隔符
public function __construct(){
$this->init();
}
public function init(){
$CI = &get_instance();
$CI->config->load('qiniu', TRUE); //加载七牛配置
$config = $CI->config->item('qiniu','qiniu');
$this->Access_Key = $config['Access_Key'];
$this->Secret_Key = $config['Secret_Key'];
$this->bucket = $config['bucket'];
$this->domain = $config['domain'];
}
/**
* @Author
* @version 1.0.1
* @param [json/array] $data [需要上传的数据]
* @param [str] $film_name [文件名称前半部分]
* @param [str] $uniqid [文件名称后半部分]
* @return [type] [文件的链接]
*/
public function makeJson($data,$film_name,$uniqid){
if(is_array($data)){
$data = json_encode($data);
}
!file_exists($this->path) && mkdir($_SERVER['DOCUMENT_ROOT'].'/'.$this->path,0777);
$file_name = $film_name.$this->symbol.$uniqid.'.json'; //文件名称
$path = $this->path.'/'.$file_name; //文件夹路径
$res = file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$path, $data);
return $this->upFile($path,$file_name);
}
private function upFile($file,$file_name){
$auth = new Auth($this->Access_Key,$this->Secret_Key);
$bucketManager = new BucketManager($auth);
$url = $_SERVER['SERVER_NAME'].'/'.$file;
$key = $file_name;
$bucket = $this->bucket;
// 指定抓取的文件保存名称
list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
// echo "=====> fetch $url to bucket: $bucket key: $key\n";
if ($err !== null) {
return $err;
} else {
unlink($_SERVER['DOCUMENT_ROOT'].'/'.$file);
return $this->domain.'/'.$file_name;
}
// 不指定key时,以文件内容的hash作为文件名
// $key = null;
// list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
// // echo "=====> fetch $url to bucket: $bucket key: $(etag)\n";
// if ($err !== null) {
// var_dump($err);
// } else {
// print_r($ret);
// }
}
/**
* 七牛上传接口
* @Author
* @DateTime 2017-12-05
* @param [string] $name [文件名称]
* @param [string] $filePath [文件路径]
* @param [string] $type [文件类型]
*/
public function upload($name,$filePath,$type){
$auth = new Auth($this->Access_Key,$this->Secret_Key);
$token = $auth->uploadToken($this->bucket);//生成token ($this->bucket);
$upManager = new UploadManager();
list($ret,$err)=$upManager->putFile($token,$name,$filePath,null,$type,false); //上传文件到七牛
if($err){
return false;
}else{
return $this->domain.'/'.$name;
}
}
/**
* 分片上传返回所需数据
* @Author
* @DateTime 2017-12-04
* @return array
*/
public function slice(){
header('Access-Control-Allow-Origin:*');
$bucket = $this->bucket;
$auth = new Auth($this->Access_Key,$this->Secret_Key);
$upToken = $auth->uploadToken($bucket);
return (array('uptoken' => $upToken,'domain' => $this->domain));
}
}
七牛上传图片以及分装好的上传类
最新推荐文章于 2022-08-16 20:24:45 发布