DANH MỤC: PHP Cơ Bản

Bài 18: Upload file trong PHP


Bài trước mình đã giới thiệu với mọi người khá là nhiều hàm xử file trong PHP và tiếp tự với file trong PHP thì bài này mình sẽ giới hướng dẫn mọi người upload file trong PHP.

1, Chuẩn bị.

-Để có thể upload được file thì mọi người chuẩn bị cho mình một form như sau:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>upload file- toidicode.com</title>
    <link rel="stylesheet" href="">
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload" value="">
    <input type="submit" name="up" value="Upload">
</form>
</body>
</html>

Trong đó chú ý: Để có thể gửi được dữ liệu dạng file lên trên server thì bạn cần phải sử dụng phương thức POST và có thuộc tính enctype="multipart/form-data" . Trường input type='file' cho phép chúng ta chọn file để upload.

2, Lý thuyết.

-Cũng giống như get và post thì ở đây server nhận dữ liệu file gửi lên bằng biến $_FILES, biến $_FILES này là một mảng 2 chiều có dạng.

$_FILES['nameInputFile']['properties']

Trong đó:

  • nameInputFile: là name của input file mà các bạn đặt ở form.
  • properties: Bao gồm 5 thuộc tính sau đây:
    1. name: Tên của file các bạn vừa upload lên.
    2. type: Kiểu dữ liệu của file
    3. tmp_name: Đường dẫn tạm của file ở trên server.
    4. error: Trạng thái của file. 0 là không có lỗi (xem thêm)
    5. size: Dung lượng của file ở đây đơn vị là bytes.

-Và upload hoàn tất thì chúng ta dùng hàm move_uploaded_file() với cú pháp:

move_uploaded_file(filename, destination)

Trong đó:

  • filename: là đường dẫn đến file tạm thời ở trên server
  • destination: là đường dẫn chứa file được lưu trữ.

3, Thực hành.

-Lôi thôi một vòng lý thuyết chán quá đúng không nào? Phần này chúng ta sẽ thực hành upload file đơn giản với form ở phần 1 nhé.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>upload file- toidicode.com</title>
    <link rel="stylesheet" href="">
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload" value="">
    <input type="submit" name="up" value="Upload">
</form>
<?php
if (isset($_POST['up']) && isset($_FILES['fileUpload'])) {
    if ($_FILES['fileUpload']['error'] > 0)
        echo "Upload lỗi rồi!";
    else {
        move_uploaded_file($_FILES['fileUpload']['tmp_name'], 'upload/' . $_FILES['fileUpload']['name']);
        echo "upload thành công <br/>";
        echo 'Dường dẫn: upload/' . $_FILES['fileUpload']['name'] . '<br>';
        echo 'Loại file: ' . $_FILES['fileUpload']['type'] . '<br>';
        echo 'Dung lượng: ' . ((int)$_FILES['fileUpload']['size'] / 1024) . 'KB';
    }
}
?>
</body>
</html>

-Chú thích: Phần trên mình đã upload file vào thư mục upload và cho hiện ra thông số của file.

4, Bài tập.

-Từ bài thực hành ở phần 3 các bạn về có thể ràng buộc thêm về giới hạn dung lượng file và file được up phải là file ảnh(.jpg, .png, .bmp).

-Mình sẽ chữa ở một thời gian gần nhất.

5, Lời kết.

-Như vậy qua bài hôm nay mình đã giới thiệu với mọi người về cách upload file trong PHP rồi. Bài tiếp theo chúng ta sẽ tìm hiểu về một số hàm kiểm tra kiểu dữ liệu trong PHP.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia