首先前台HTML表单代码如下:
1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 4 <title>PHP中文网上传视频</title> 5 6 </head> 7 <body> 8 <form action='./upload.php' method=post enctype="multipart/form-data"> 9 <input type="hidden" name="MAX_FILE_SIZE" value="2000000000"> 10 <input type=file name=upfile size=20> 11 <input type=submit value='上传文件'> 12 </form> 13 </body> 14 </html>
前端页面效果如下:
然后后台处理上传视频的PHP代码如下:
1 <?php 2 /** 3 * PHP上传视频 4 */ 5 $upfile = $_FILES['upfile']; 6 7 function upload_file($files, $path = "./upload", $imagesExt = ['jpg', 'png', 'jpeg', 'gif', 'mp4']) 8 { 9 // 判断错误号 10 if (@$files['error'] == 00) { 11 // 判断文件类型 12 $ext = strtolower(pathinfo(@$files['name'], PATHINFO_EXTENSION)); 13 if (!in_array($ext, $imagesExt)) { 14 return "非法文件类型"; 15 } 16 17 // 判断是否存在上传到的目录 18 if (!is_dir($path)) { 19 mkdir($path, 0777, true); 20 } 21 22 // 生成唯一的文件名 23 $fileName = md5(uniqid(microtime(true), true)) . '.' . $ext; 24 25 // 将文件名拼接到指定的目录下 26 $destName = $path . "/" . $fileName; 27 28 // 进行文件移动 29 if (!move_uploaded_file($files['tmp_name'], $destName)) { 30 return "文件上传失败!"; 31 } 32 return "文件上传成功!"; 33 } else { 34 // 根据错误号返回提示信息 35 switch (@$files['error']) { 36 case 1: 37 echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值"; 38 break; 39 case 2: 40 echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值"; 41 break; 42 case 3: 43 echo "文件只有部分被上传"; 44 break; 45 case 4: 46 echo "没有文件被上传"; 47 break; 48 case 6: 49 case 7: 50 echo "系统错误"; 51 break; 52 } 53 } 54 55 } 56 57 echo upload_file($upfile); 58 59 ?>
那么在这个PHP代码中,我们定义了一个upload_file的上传函数,通过这个函数不仅可以实现视频上传还能实现图片上传。
并且已经通过详细的注释给大家介绍了每一步操作的含义,方便大家参考学习。
最后我们可以选择上传一段视频进行测试,结果如下:
链接:https://mp.weixin.qq.com/s/Go5tzd1_omhgNyn6d3BKzA