/**
* 为了方便外部网站将附件上传至 SAE上的Storage 所以写了这个简单的api。
* 使用方法 :
* 一、将api.php 上传至SAE
* 二、本地只要实例化 SaeUpload.class.php这个类即可
*
*
* SaeUpload提供了三个方法
* writeFile($filename,$up_filename,$replace=false) 上传文件
* deleteFile($filename) 删除文件
* exists($filename) 判断文件是否存在 如果存在返回文件的路径 否则返回false
*
*
* @author silenceper
* @date 2013-07-28
*/
class Api{
public $post;
public $files;
public function __construct($post,$files,$pass){
$this->post=$post;
$this->files=$files;
//密码是否相等
if($pass!=$post['pass']){
$this->responseMesg(0,'密码错误');
}
}
/**
* start
*/
public function start(){
$post=$this->post;
switch ($post['method']){
case 'upload':
$this->uploadFile($this->post,$this->files);
break;
case 'delete':
$this->deleteFile($this->post);
break;
case 'exists':
$this->check_exists($this->post);
break;
default:
$this->responseMesg(0,'未知的请求');
break;
}
}
/**
* 上传文件
*
*/
private function uploadFile($post,$files){
$domain=$post['domain'];
$path=$post['path'];
$replace=$post['replace'];
$s = new SaeStorage();
if($s->fileExists($domain,$path)){
//文件已经存在
if($replace==false){
//不进行文件的覆盖覆盖
$this->responseMesg(0,'文件已经存在','文件已经存在');
}
}
//可以进行上传操作
$s_file=$s->upload($domain,$path,$files['file']['tmp_name']);
if($s_file===false){
$this->responseMesg(0,'上传失败',$s->errmsg());
}else{
$this->responseMesg(1,'上传成功',$s_file);
}
}
/**
* 删除文件
*/
private function deleteFile($post){
$domain=$post['domain'];
$path=$post['path'];
//首先判断文件是否存在
$s = new SaeStorage();
if(!$s->fileExists($domain,$path)){
//不进行文件的覆盖覆盖
$this->responseMesg(0,'该文件不存在,无法删除','该文件不存在,无法删除');
}
//可以执行删除
if($s->delete($domain,$path)){
$this->responseMesg(1,'文件删除成功');
}else{
$this->responseMesg(0,'文件删除失败',$s->errmsg());
}
}
/**
* 判断文件是否存在
*/
private function check_exists($post){
$domain=$post['domain'];
$path=$post['path'];
//首先判断文件是否存在
$s = new SaeStorage();
if($s->fileExists($domain,$path)){
$url=$s->getUrl($domain,$path);
$this->responseMesg(1,'文件存在',$url);
}else{
$this->responseMesg(1,'文件不存在',0);
}
}
/**
* 返回json信息
*/
private function responseMesg($code=0,$message='request failed!',$data=null){
$arr=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
echo json_encode($arr);
exit();
}
}
//实例化
$api=new Api($_POST,$_FILES,'123');
$api->start();
?>
一键复制
编辑
原始数据
按行查看
历史