Thinkphp如何使用form-builder上传视频
这篇文章主要介绍“Thinkphp如何使用form-builder上传视频”,在日常操作中,相信很多人在Thinkphp如何使用form-builder上传视频问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Thinkphp如何使用form-builder上传视频”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
田东ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
增加前端代码(待更新)
后台代码
/** * 添加/修改页面 * @param int $id * @return string */ public function addVideo($id = 0,$fodder= '') { $reply_model = VideoModel::get($id); $f = array(); if (!$reply_model) { $f[] = Form::input('title', '标题:', ''); $f[] = Form::textarea('desc', '简介:', ''); $f[] = Form::uploadFileOne('video_url','视频链接',Url::buildUrl('file_upload',array(['filePath'=>'video_url']))); } else { $f[] = Form::input('title', '标题:', $reply_model->getData('title')); $f[] = Form::textarea('desc', '简介:', $reply_model->getData('desc')); $f[] = Form::uploadFileOne('video_url','视频链接',Url::buildUrl('file_upload',array(['filePath'=>'video_url'])),$reply_model->getData('video_url')); } $form = Form::make_post_form('添加用户通知', $f, Url::buildUrl('saveVideo', array('id' => $id))); $this->assign(compact('form')); return $this->fetch('public/form-builder'); } /** * 文件上传 * * */ public function file_upload() { //如何在用户点击确认的时候 视频保存下来 意思就是用户不点击提交的时候 脚本结束时 视频就在临时文件夹下一起销毁了 这是一个值得思考的问题 $val= new Validate(); //上传文件 $file = request()->file('video_url'); //编写上传规则,必须是上传文件,必须是 mp4,wma等后缀 $validate = $val->rule([ 'video_url' =>[ 'fileExt'=>'mp4,wma']]); //得到上传文件和规则比对 $result = $validate->check([ 'video_url' => $file ]); //通过输出地址,否则输出错误 if ($result) { $info = \think\facade\Filesystem::putFile('video', $file); // $info = $file->move('uploads'); //上面产生了右斜杠修改成左斜杠 $getSaveName=str_replace("\\","/",$info); $fileUrl = '/uploads/'.$getSaveName; //获取当前域名 // $server_name = $_SERVER['SERVER_NAME']; $server_name = $_SERVER['HTTP_HOST']; //获取当前网址协议 $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://'; $video_url = $http_type.$server_name.$fileUrl; return Json::successful('上传成功!',['filePath'=>$video_url]); } else { return Json::fail($validate->getError()); } } /** * 添加/修改 * @param int $id */ //上传视频的逻辑 前端发起请求->临时文件->验证文件->保存临时视频文件 ->返回路径->保存路径 public function saveVideo($id = 0) { $data = UtilService::postMore([ ['title', ''], ['desc', ''], ['video_url', ''] ]); //也就是这里需要一个验证和保存临时文件的操作 if(empty($data['title'])){ return JsonService::fail('标题不为空!'); }elseif (empty($data['desc'])){ return JsonService::fail('简介不为空!'); }elseif (empty($data['video_url'])){ return JsonService::fail('视频不为空!'); }else{ if ($id) { if (VideoModel::where('id', $id)->update($data)) { return JsonService::success('修改成功'); } else { return JsonService::fail('修改失败或者您没有修改什么!'); } } else { if ($res = VideoModel::create($data)) { return JsonService::success('保存成功', ['id' => $res->id]); } else { return JsonService::fail('保存失败!'); } } } }
到此,关于“Thinkphp如何使用form-builder上传视频”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
名称栏目:Thinkphp如何使用form-builder上传视频
当前链接:http://pwwzsj.com/article/goicho.html