config目录下的app.php文件先配置好本地上传
/**
* 本地上传
*/
'UCloudEngine' => 'local',
/**
* 本地存储相关配置(UCloudEngine為local时的配置)
*/
'UCloud' => array(
//对应的文件路径
'host' => 'http://localhost.com/api/upload'
),
Appapi/Api/Live.php 文件
class Api_Live extends Api_Common {
public function getRules() {
return array(
'uploadVideo'=>array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '会员ID'),'token' => array('name' => 'token', 'require' => true, 'min' => 1, 'desc' => '会员token'),
'isshow'=>array('name'=>'isshow','require'=>true,'desc'=>'是否顯示,1顯示。0不顯示,存成草稿'),
'title'=>array('name' => 'title', 'type' => 'string','require'=>true,'desc'=>'視頻標題'),
'videoType'=>array('name'=>'videoType','type'=>'int','require'=>true,'min'=>0,'desc'=>'視頻類型'),
'videoDesc'=>array('name'=>'videoDesc','type'=>'string','desc'=>'視頻描述'),
'file' => array('name' => 'file','type' => 'file', 'min' => 0,/*'range' => array('video/eot-mp4','video/mp4'),'ext' => array('mp4'),*/'desc' => '视频信息'),
'file1' => array('name' => 'file1','type' => 'file', 'min' => 0, 'max' => 1024 * 1024 * 30, 'range' => array('image/jpg', 'image/jpeg', 'image/png'), 'ext' => array('jpg', 'jpeg', 'png'),'desc' => '缩略图信息'),
),
);
}
/**
*上傳視頻
*@desc 用戶上傳視頻
*@return int code 操作碼,0表示成功
*@return string msg 提示信息
*@return array info 返回數據
*/
public function uploadVideo(){
$uid=$this->uid;
$token=$this->token;
$isshow=$this->isshow;
$title=$this->title;
$videoType=$this->videoType;
$videoDesc=$this->videoDesc;
$checkToken=$this->checkToken($uid,$token);
if($checkToken==700){
$rs['code'] = $checkToken;
$rs['msg'] = 'Token错误或已過期,請重新登录';
return $rs;
}
if (!isset($_FILES['file'])) {
$rs['code'] = 1001;
$rs['msg'] = '请选择上传视频';
return $rs;
}
if (!isset($_FILES['file1'])) {
$rs['code'] = 1;
$rs['msg'] = '请上傳缩略图';
return $rs;
}
if ($_FILES["file"]["error"] > 0) {
$rs['code'] = 1002;
$rs['msg'] = '视频上传失败,请稍后重试';
DI()->logger->debug('failed to upload file with error: ' . $_FILES['file']['error']);
return $rs;
}
if ($_FILES["file1"]["error"] > 0) {
$rs['code'] = 2;
$rs['msg'] = '缩略图上传失败,请稍后重试';
DI()->logger->debug('failed to upload file with error: ' . $_FILES['file']['error']);
return $rs;
}
if($title==""){
$rs['code'] = 1003;
$rs['msg'] = '请填寫視頻主題';
return $rs;
}
if($videoType<0){
$rs['code'] = 1004;
$rs['msg'] = '请選擇視頻類型';
return $rs;
}
if($videoDesc==""){
$rs['code'] = 1005;
$rs['msg'] = '请填寫視頻描述';
return $rs;
}
$rs=array('code'=>0,'msg'=>'','info'=>array());
//接口設置上传路径【因為在config下的app.php文件中設置的上傳根目錄為http://localhost.com/api/upload,所以下面的設置會在此目錄下新添加相應的文件夾---video/以日期形式創建目錄】
DI()->ucloud->set('save_path','video/'.date("Ymd"));
//上传視頻
$res = DI()->ucloud->upfile($_FILES['file']);
//上傳縮略圖
$res1 = DI()->ucloud->upfile($_FILES['file1']);
$video_url= $res['url'];
$covers=$res1['url'];
$data=array(
"uid"=>$uid,
'isshow'=>$isshow,
"title"=>$title,
"type"=>$videoType,
"desc"=>$videoDesc,
"video_url"=>$video_url,
"covers"=>$covers,
"addtime"=>time()
);
@unlink($_FILES['file']['tmp_name']);
$domain = new Domain_Live();
$result=$domain->uploadVideo($data);
if($result!=1){
$rs['code'] = 1006;
$rs['msg'] = '視頻上傳失敗';
return $rs;
}else{
$rs['code']=0;
$rs['msg']="視頻上傳成功";
}
return $rs;
}
}
Appapi/Domain下的Live.php文件
class Domain_Live {
public function uploadVideo($data){
$rs = array();
$model = new Model_Live();
$rs = $model->uploadVideo($data);
return $rs;
}
}
Appapi/Model下的Live.php文件
/**
* 上傳視頻
*/
public function uploadVideo($data){
$rs=DI()->notorm->videos
->insert($data);
if($rs!==false){
return 1;
}else{
return 1003;
}
}
数据库结构