Chức năng upload video lên Database trong PHP

Trong một bài viết trước mình có chia sẻ về cách upload hình ảnh lên Database. Nếu bạn đã thực hành qua sẽ thấy khá dễ dàng. Bài viết này mình sẽ hướng dẫn bạn cách upload một video lên cơ sở dữ liệu Database và hiển thị ở trên mình hình trình duyệt.

Bước 1: Tạo ra 1 database tên là data => Ấn vào tab MySQL gõ đoạn code này vào

CREATE TABLE `videos` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`location` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Đoạn mã này sẽ tạo ra một bảng tên là video gồm các cột id, name, location

Tiếp đó tạo ra thư mục upload trong htdocs

Bước 2: Tạo file upload.php với nội dung

<form method="post" action="" enctype='multipart/form-data'>
<input type='file' name='file' />
<input type='submit' value='Upload' name='upload'>
</form>
<?php require 'action.php';?>

<?php require 'view.php';?>

Bước 3: Tạo file action.php để xử lý và kết nối tới Database

<?php
// Kết nội CSDL
$host = "localhost";
$user = "root";
$password = "";
$dbname = "data";

$con = mysqli_connect($host, $user, $password,$dbname);
// Check connection
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
// Kiểm tra button
if(isset($_POST['upload'])){

// Dung lượng cho phép upload lên
$maxsize = 52428800; // 5MB

// Lưu vào thư mục trên máy tính
$name = $_FILES['file']['name'];
$target_dir = "videos/";
$target_file = $target_dir . $_FILES["file"]["name"];

$videoFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Định dạng mở rộng
$extensions_arr = array("mp4","avi","3gp","mov","mpeg");

if( in_array($videoFileType,$extensions_arr) ){

// Điều kiện kiểm tra dung lượng file
if(($_FILES['file']['size'] >= $maxsize) || ($_FILES["file"]["size"] == 0)) {
echo "File quá lớn! Vui lòng upload file nhỏ hơn!";
}else{
// Tiếp hành Upload
if(move_uploaded_file($_FILES['file']['tmp_name'],$target_file)){
// Ghi dữ liệu vào Database
$query = "INSERT INTO videos(name,location) VALUES('".$name."','".$target_file."')";

$query = mysqli_query($con,$query);
if($query)
{
echo "Upload thành công.";
}
}
}

}else{
echo "Lỗi định dạng";
}

}
?>
Tại $maxsize = 52428800; Dung lượng cho phép là 5MB, trường hợp video lớn hơn bạn sẽ phải thay đổi số này. 1 Megabytes = 1048576 Bytes. Nếu là 100MB = 104857600 Bytes

Bước 4: Tạo file view.php để hiển thị video

<?php
$fetchVideos = 'SELECT location FROM videos ORDER BY id DESC';
$result = mysqli_query($con, $fetchVideos);
if (!$result) {
echo "Lỗi không lấy được dữ liệu";
}
else {
while($row = mysqli_fetch_array($result)) {
$location = $row['location'];

echo "<div >";
echo "<video src='".$location."' controls width='320px' height='200px' >";
echo "</div>"; }
}
?>

Bước 5: Tạo một thư mục là videos trên máy tính

file

Xong xuôi tiến hành up video lên xem thế nào!

Gõ lên trình duyệt localhost/upload/upload.php

upload-video-php

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Validate Form trong PHP

Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này…