一、这是app/Admin/Common/funtion.php公共办法里面封装
///文件 上传
function UpFile($filepath = null){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 314572800000000 ;// 设置附件上传大小【这个要足够大】
$upload->exts = array('jpg', 'gif', 'png', 'jpeg','txt','doc','word','excel','pdf','ppt','xls','mp4');// 设置附件上传类型
$upload->rootPath = './Public/'; // 设置附件上传根目录
$upload->savePath = $filepath ? $filepath : 'upload/'; // 设置附件上传(子)目录
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
$upload->saveName = myrule();
//$upload->saveName = time().'_'.mt_rand(); //文件名规则
// 上传文件
$info = $upload->upload();
if(!$info) {// 上传错误提示错误信息
return $upload->getError();
}else{// 上传成功 获取上传文件信息
return $info;
}
}
二、 表单
<form action="{:U('add_sin')}" method="post" id="myform" name="myform" enctype="multipart/form-data">
<tr>
<th>视频:</th>
<td> <input type="file" name="s_video" ></td>
</tr>
</form>
三、控制器添加上传视频
if($_FILES['s_video']['name'])
{
//调用上传方法
$info = UpFile();
// print_r($info);die;
if($info)
{
foreach($info as $v)
{
$datas['s_video'] = '/Public/'.$v['savepath'].$v['savename'];
}
}
}
M('single')->data($data)->add();//添加入库
四、列表
<td><video src="{$vo.s_video}" width="200px" height="100px"></video></td>
五、编辑表单
<td><input type="file" name="s_video"><video src="{$sin_info.s_video}" width="80px" height="80px"></video><input type="hidden" name="edit_video" value="{$sin_info.s_video}"></td>
六、编辑控制器
1)先接值处理
if($_FILES['s_video']['name'])
{
//调用上传方法
$info = UpFile();
// print_r($info);die;
if($info)
{
foreach($info as $v)
{
$datas['s_video'] = '/Public/'.$v['savepath'].$v['savename'];
}
}
}
2)如果有新上传视频,将旧视频删除
$edit_video = I("edit_video");//获取原来封面图的地址
// print_r($edit_video);die;
//如果修改的时候上传了文件,则清空原来的文件
if($datas['s_video']){
unlink('.'.$edit_video);
}
M('single')->where("s_id = $s_id")->save($datas);//修改
Thinkphp 视频上传 以及HTML展示
最新推荐文章于 2024-08-25 19:16:11 发布