日前,在java、php等前端开发中,要实现app与服务端数据的交互,需要找到一款集成好,便于开发的接口文件,在寻找了众多的开源文件之后,我们选定了phalapi框架作为实现与app端数据交互的接口,因为它文件独立,易于开发,官方文档详细。而在app的众多功能中,能上传图片、视频是基础的需求,但phalapi框架中并未有现成的上传视频文件的demo。下面,就为大家介绍下在一对一直播交友源码中phalapi框架接口文件实现视频文件的上传功能。
首先,config目录下的app.php文件先配置好本地上传
/**
* 本地上传
*/
'UCloudEngine' => 'local',
/**
* 本地存储相关配置(UCloudEngine為local时的配置)
*/
'UCloud' => array(
//对应的文件路径
'host' => 'http://localhost.com/api/upload'
),
在一对一直播交友源码api文件中,先给方法限定好需要传递的参数列表:
'uploadVideo'=>array(
'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '会员ID'),
'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' => '缩略图信息'),
),
public function uploadVideo(){
$uid=$this->uid;
$title=$this->title;
$videoType=$this->videoType;
$videoDesc=$this->videoDesc;
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文件中設置的上傳根目錄為 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,
"title"=>$title,
"type"=>$videoType,
"desc"=>$videoDesc,
"video_url"=>$video_url,
"covers"=>$covers,
"addtime"=>time()
);
@unlink($_FILES['file']['tmp_name']);
return $rs;
}
}
这样,视频文件就保存在了服务器的/api/upload目录下了。以上是在一对一直播交友源码中phalapi框架实现视频文件上传本地存储的方法。如果你希望获取更多直播好文章,请继续关注我们,我们将持续为你更新。