Tp3如何实现本地视频文件上传到七牛云

  对于七牛云的使用,估计有些刚接触开发的技术人员还不太清楚,那么更不要说如何实现本地视频上传到七牛云转储了,其实这个技术并没有想象中的那么困难,下面就来跟大家详细介绍一下流程:

  1、首先我们要先去寻找七牛云的SDK网址,打开后直接下载就行了;

  2、下载完成之后我们把它放在tp框架的./ThinkPHP/Extend/Vendor/目录下;

  3、完成之后,前期的准备工作就完成了,接下来就是自己上手写代码了:

  首先肯定是先在模板部分建立一个form表单:

  *视频上传:

  我们就提交到News控制器里的do_add这个方法里边:

  public function do_add(){

  if(!empty($_FILES['video']['name'])){ //首先判断数据是否为空

  import('ORG.Net.UploadFile');

  $upload = new UploadFile();// 实例化上传类

扫描二维码关注公众号,回复: 2048598 查看本文章

  $upload->maxSize = 31457281;// 设置附件上传大小

  $upload->allowExts = array('mp4');// 设置附件上传类型 如果是MP3的话改为mp3 就ok

  $upload->savePath = './Public/Uploads/video/';// 设置附件上传目录(先把文件上传到本地服务器上)

  //$upload->saveName = I('uid').'_'.time();// 设置附件上传目录

  if(!$upload->upload()) {// 上传错误提示错误信息

  $this->error($upload->getErrorMsg());

  }else{// 上传成功 获取上传文件信息

  $info = $upload->getUploadFileInfo();

  }

  //导入类自动加载器

  require_once'./ThinkPHP/Extend/Vendor/qiniusdk/autoload.php';

  //七牛的钥密

  $accessKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

  $secretKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

  $bucket = 'haha'; //这个是你上传的空间

  $savepath = "http://www.xxxxxxxxxx.com/";//这是你七牛的路径

  $auth = new Auth($accessKey, $secretKey);

  //可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当间

  $mediaid = time().uniqid();

  $savekey = \Qiniu\base64_urlSafeEncode(haha:'.$mediaid.'.mp4');

  $fops = $fops.'|saveas/'.$savekey;

  $policy = array(

  'persistentOps' => $fops,

  );

  $uptoken = $auth->uploadToken($bucket, null, 3600, $policy);

  //上传文件的本地路径

  $filePath = './Public/Uploads/video/'.$info[0]['savename'];

  $key = $mediaid.'.mp4';

  $uploadMgr = new UploadManager();

  list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);

  if ($err !== null) {

  $dataname["info"]="error";

  } else {

  $savename=$ret['key'];

  $file = $savepath.$savename;

  $dataname["info"]=$file;

  }

  }else{

  $dataname["info"]="error";

  }

  unlink($filePath);//上传成功后删除本地服务器上的文件

  $audio=D("audio");

  $wh['aid']=I("aid");

  $data['video_path']=$file;

  $re=$audio->add($data); //路径保存到数据表

  if($re){

  success('添加成功',U('News/newslist'));

  }else{

  error("添加失败");

  }

  //echo json_encode($dataname); //返回数据结构自行封装

  }

  到这里运行之后还是出错 找不到Auth这个类,摸索了一会儿才发现少了命名空间,加到控制器顶部即可:

  use Qiniu\Storage\UploadManager;

  use Qiniu\Auth;

  运行后正常。

  至此已经上传完毕,上传完成到自己的七牛看一看就OK!需要跟大家说明的是MP3和MP4类似,只需要把代码中的MP4换为MP3即可,那么现在大家可以开始动手尝试一下了,如果还存在疑问的话,可以留言,我们收到后会第一时间回复。本文由专业的郑州app开发公司燚轩科技整理发表,如需转载请注明出处。

猜你喜欢

转载自blog.51cto.com/13686158/2139879