php 实现上传视频

10 篇文章 0 订阅

首先前台HTML表单代码如下:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>上传视频</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的上传函数,通过这个函数不仅可以实现视频上传还能实现图片上传。

并且已经通过详细的注释给大家介绍了每一步操作的含义,方便大家参考学习。

最后我们可以选择上传一段视频进行测试,结果如下:

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现PHP+MySQL的视频上传与删除功能,可以按照以下步骤进行: 1. 创建数据库:首先要创建一个MySQL数据库,用于存储视频文件的相关信息,如视频的名称、路径、上传时间等。 2. 创建表:在数据库中创建一个表,用于存储视频文件的信息,可以包括以下字段:视频ID、视频名称、视频路径、上传时间等。 3. 上传视频文件:在HTML页面中添加一个表单,用于上传视频文件。在PHP代码中,通过$_FILES全局变量获取上传的文件信息,将视频文件保存到服务器指定目录下,并将相关信息存储到MySQL数据库中。 4. 显示视频列表:在网页中显示已上传视频列表,可以使用HTML和PHP代码实现。从MySQL数据库中获取所有视频的信息,并将其显示在网页上,同时提供删除视频的功能。 5. 删除视频:当用户点击删除按钮时,通过PHP代码从MySQL数据库中删除相应的视频信息,并从服务器中删除视频文件。 示例代码如下: 1. 创建MySQL数据库和表格 ```sql CREATE DATABASE video; USE video; CREATE TABLE video_list ( video_id INT(11) NOT NULL AUTO_INCREMENT, video_name VARCHAR(255) NOT NULL, video_path VARCHAR(255) NOT NULL, upload_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (video_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 2. 上传视频文件 HTML代码: ```html <form action="upload.php" method="post" enctype="multipart/form-data"> <label for="video">选择视频文件:</label> <input type="file" name="video" id="video"><br> <input type="submit" name="submit" value="上传"> </form> ``` PHP代码(upload.php): ```php <?php if (isset($_POST['submit'])) { // 获取上传的文件信息 $video_name = $_FILES['video']['name']; $video_tmp_name = $_FILES['video']['tmp_name']; $video_size = $_FILES['video']['size']; $video_error = $_FILES['video']['error']; // 检查上传视频文件是否合法 if ($video_error > 0) { die("上传视频文件出错"); } if ($video_size > 100000000) { die("视频文件过大"); } // 将视频文件移动到指定目录 $target_dir = "uploads/"; $target_file = $target_dir . basename($video_name); if (move_uploaded_file($video_tmp_name, $target_file)) { // 将视频文件信息保存到MySQL数据库中 $conn = mysqli_connect("localhost", "root", "", "video"); $sql = "INSERT INTO video_list (video_name, video_path) VALUES ('$video_name', '$target_file')"; if (mysqli_query($conn, $sql)) { echo "视频上传成功"; } else { echo "视频上传失败"; } mysqli_close($conn); } else { echo "视频上传失败"; } } ?> ``` 3. 显示视频列表和删除视频 PHP代码(index.php): ```php <?php // 从MySQL数据库中获取视频列表 $conn = mysqli_connect("localhost", "root", "", "video"); $sql = "SELECT * FROM video_list"; $result = mysqli_query($conn, $sql); ?> <!DOCTYPE html> <html> <head> <title>视频列表</title> </head> <body> <h1>视频列表</h1> <table> <tr> <th>ID</th> <th>视频名称</th> <th>上传时间</th> <th>操作</th> </tr> <?php while ($row = mysqli_fetch_assoc($result)) { ?> <tr> <td><?php echo $row['video_id']; ?></td> <td><?php echo $row['video_name']; ?></td> <td><?php echo $row['upload_time']; ?></td> <td> <a href="<?php echo $row['video_path']; ?>" target="_blank">查看</a> <a href="delete.php?id=<?php echo $row['video_id']; ?>">删除</a> </td> </tr> <?php } ?> </table> </body> </html> <?php mysqli_close($conn); ?> ``` PHP代码(delete.php): ```php <?php if (isset($_GET['id'])) { $video_id = $_GET['id']; // 从MySQL数据库中删除视频信息 $conn = mysqli_connect("localhost", "root", "", "video"); $sql = "SELECT video_path FROM video_list WHERE video_id=$video_id"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); $video_path = $row['video_path']; $sql = "DELETE FROM video_list WHERE video_id=$video_id"; if (mysqli_query($conn, $sql)) { // 从服务器中删除视频文件 if (unlink($video_path)) { echo "删除成功"; } else { echo "删除视频文件失败"; } } else { echo "删除失败"; } mysqli_close($conn); } ?> ``` 注意:以上代码仅供参考,实际应用中需要进行适当修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

❀想容

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值