phalapi框架接口实现视频上传

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;
}
}


数据库结构




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值