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.
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.
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.
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.
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