Thứ Tư, 27 Tháng Mười Một 2024
Trang chủPHP & MysqlPHPUpload file trong php - Tải file từ Bộ nhớ lên server...

Upload file trong php – Tải file từ Bộ nhớ lên server trong PHP

Upload file trong php – Tải file từ Bộ nhớ lên server trong PHP. Khi lập trình website thì upload file là một phần rất quan trọng, upload file giúp ta tải lên hình ảnh, video, lưu trữ lên website… Trong bài viết này chúng ta sẽ tìm hiều về cách upload file trong PHP.

DANH SÁCH BÀI VIẾT
Các hàm kiểm tra kiểu dữ liệu(Loại dữ liệu) trong PHP
Toán tử 3 ngôi trong lập trình PHP - Toán tử điều kiện PHP
Upload file trong php - Tải file từ Bộ nhớ lên server trong PHP
Session và Cookie trong PHP - Hướng dẫn Session và Cookie
Class trong PHP - Lập trình hướng đối tượng trong PHP(OOP)

Upload file trong php

Khi đã có được được, lưu file đó lên server ta sẽ dùng hàm move_uploaded_file trong php. Tuy nhiên trước khi có file đó để đẩy lên bộ nhớ server thì ta cần thực hiện một số bước như kiểm tra file cũng như cần xử lý một số liên quan, tạo form để chọn file upload…

Để upload một file trong php thành công bạn hãy thực hiện theo mình một số bước như sau

Trước hết, hãy chuẩn bị cho mình một form HTML cho người dùng nhập tệp cần tải lên từ bộ nhớ. Sử dụng thẻ <form> với thuộc tính enctype=”multipart/form-data” để đảm bảo bạn có thể gửi dữ liệu nhị phân (binary data). Lưu ý là nếu thẻ form không có thuộc tính enctype thì sẽ không thể tải file lên được nhé, để gửi file từ trình duyệt lên server thì cần phải gửi dưới dạng nhị phân.

Form tải file

<!DOCTYPE html>
<html>
<head>
    <title>Upload File</title>
</head>
<body>
    <form action="upload.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload File" name="submit">
    </form>
</body>
</html>

>>XEM THÊM: include, include_once, require, require_once trong PHP – Nhập file

Sau đó viết code xử lý tải file lên với PHP

File gửi lên server sẽ được lưu tạm thời tại biến toàn cục $_FILES, biến này là một biến dạng object, với mỗi phần tử object là một file gửi lên theo ID. Ví dụ form input file của chúng ta có id là fileToUpload thì file đó được lưu tạm thời trên biến $_FILES[‘fileToUpload ‘]. Khi đã có file này ta sẽ thực hiện kiểm tra cũng như xử lý một số bước sau đó dùng hàm move_uploaded_file để lưu file vào bộ nhớ server.

<?php
$targetDirectory = "uploads/"; // Thư mục lưu trữ tệp đã tải lên
$targetFile = $targetDirectory . basename($_FILES["fileToUpload"]["name"]); // Đường dẫn đầy đủ của tệp sau khi tải lên
$uploadOk = 1; // Biến kiểm tra xem việc upload có thành công không (1: thành công, 0: không thành công)
$imageFileType = strtolower(pathinfo($targetFile,PATHINFO_EXTENSION)); // Định dạng tệp

// Kiểm tra xem tệp đã tồn tại chưa
if (file_exists($targetFile)) {
    echo "Tệp đã tồn tại.";
    $uploadOk = 0;
}

// Kiểm tra kích thước tệp
if ($_FILES["fileToUpload"]["size"] > 500000) { // Giới hạn kích thước là 500KB
    echo "Tệp quá lớn.";
    $uploadOk = 0;
}

// Cho phép tệp có các định dạng cụ thể, ví dụ: jpg, png, gif
$allowedFileTypes = array("jpg", "png", "jpeg", "gif");
if (!in_array($imageFileType, $allowedFileTypes)) {
    echo "Chỉ cho phép tải lên tệp ảnh.";
    $uploadOk = 0;
}

// Kiểm tra xem biến $uploadOk có giá trị 0 không, nếu có, hiển thị thông báo lỗi
if ($uploadOk == 0) {
    echo "Tệp của bạn không được tải lên.";
} else { // Nếu mọi thứ đều đúng, tiến hành tải lên tệp
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
        echo "Tệp ". htmlspecialchars(basename( $_FILES["fileToUpload"]["name"])). " đã được tải lên thành công.";
    } else {
        echo "Đã xảy ra lỗi khi tải lên tệp.";
    }
}
?>

>>XEM THÊM: Session và Cookie trong PHP – Hướng dẫn Session và Cookie

Chạy thử minh họa

Trong thư mục project DEMO, mình sẽ tạo file index.php và đặt code tạo form HTML từ ví dụ trên tại đây.

Tạo thêm file upload.php và đặt code xử lý upload php tại file này.

Tạo thêm thư mục con là uploads để lưu trữ file.

Ta được cấu trúc như bên dưới ảnh.

Upload file trong php - Tải file từ Bộ nhớ lên server trong PHP

Khi chạy lên ta sẽ được form như sau, hãy thử chọn một file bất kì từ máy tính sau đó bấm Upload File.

Upload file trong php - Tải file từ Bộ nhớ lên server trong PHP

Hệ thống sẽ báo file đã được tải lên thành công.

File đã được tải lên thành công, lúc này mở thư mục uploads file sẽ nằm tại đây.

Upload file trong php - Tải file từ Bộ nhớ lên server trong PHP

CẢM ƠN BẠN ĐÃ ĐỌC HẾT BÀI VIẾT! CHÚC BẠN HỌC TỐT!

[XEM TẤT CẢ BÀI VIẾT CHUYÊN MỤC HƯỚNG DẪN PHP TẠI ĐÂY]

XEM THÊM
Toán tử 3 ngôi trong lập trình PHP – Toán tử điều kiện PHP
Ép kiểu dữ liệu trong PHP
Sự khác nhau giữa toán tử so sánh “==” và “===” trong PHP
Mảng (Array) trong PHP – Tìm hiểu về mảng trong lập trình PHP
MySql là gì? Tìm hiểu về hệ quản trị cơ sở dữ liệu MySql
Tìm hiểu câu lệnh IF, IF ELSE, ELSE trong PHP
Cấu Trúc Rẽ Nhánh Switch … Case trong PHP | Học PHP cơ bản
Hiểu vòng lặp for, while, do…while ngôn ngữ PHP trong 5 phút
Mã nguồn website thương mại điện tử – Cửa hàng Chương Mobil
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x