首先前台HTML表单代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>PHP中文网上传视频</title>
</head>
<body>
<form action='./upload.php' method=post enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000000">
<input type=file name=upfile size=20>
<input type=submit value='上传文件'>
</form>
</body>
</html>
前端页面效果如下:
然后后台处理上传视频的PHP代码如下:
<?php
/**
* PHP上传视频
*/
$upfile = $_FILES['upfile'];
function upload_file($files, $path = "./upload", $imagesExt = ['jpg', 'png', 'jpeg', 'gif', 'mp4'])
{
// 判断错误号
if (@$files['error'] == 00) {
// 判断文件类型
$ext = strtolower(pathinfo(@$files['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $imagesExt)) {
return "非法文件类型";
}
// 判断是否存在上传到的目录
if (!is_dir($path)) {
mkdir($path, 0777, true);
}
// 生成唯一的文件名
$fileName = md5(uniqid(microtime(true), true)) . '.' . $ext;
// 将文件名拼接到指定的目录下
$destName = $path . "/" . $fileName;
// 进行文件移动
if (!move_uploaded_file($files['tmp_name'], $destName)) {
return "文件上传失败!";
}
return "文件上传成功!";
} else {
// 根据错误号返回提示信息
switch (@$files['error']) {
case 1:
echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
break;
case 2:
echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
break;
case 3:
echo "文件只有部分被上传";
break;
case 4:
echo "没有文件被上传";
break;
case 6:
case 7:
echo "系统错误";
break;
}
}
}
echo upload_file($upfile);
?>
那么在这个PHP代码中,我们定义了一个upload_file的上传函数,通过这个函数不仅可以实现视频上传还能实现图片上传。
并且已经通过详细的注释给大家介绍了每一步操作的含义,方便大家参考学习。
最后我们可以选择上传一段视频进行测试,结果如下:
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里PHP进阶架构师>>>视频、面试文档免费获取
或 者关注我每天分享技术文章
PHP进阶编程www.zhihu.com作者:头大的冯冯
来源:https://www.cnblogs.com/clubs/p/11440522.html