PHP+MySQL的视频上传与删除功能实现
时间: 2023-08-01 16:09:57 浏览: 110
实现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);
}
?>
```
注意:以上代码仅供参考,实际应用中需要进行适当修改和完善。
阅读全文