Đăng nhập
Bạn chưa có tài khoản? Đăng ký.
Bạn đã quên password?
Với PHP, việc upload file lên máy chủ được thực hiện một cách dễ dàng. Tuy nhiên, dễ dàng thường đi kèm với nguy hiểm, vì vậy, hãy thật cẩn thận khi cho phép upload file lên server
Trước tiên, chúng ta cần kiểm tra file php.ini trên máy chủ server, đảm bảo rằng máy chủ được cấu hình để cho phép thực hiện upload file
Bạn hãy mở file php.ini lên, dùng lệnh ctrl + F mở hộp thoại tìm kiếm lên và gõ vào file_uploads
. Nếu lệnh đang ở dạng off thì chỉnh lại thành on.
file_uploads = on
Chúng ta tạo một form HTML để người dùng upload file hình ảnh lên
<form action="upload.php" method="post" enctype="multipart/form-data"> Chọn file upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form>
Một số quy tắt cần lưu ý
method="POST"
enctype="multiart/form-data"
. Nó chỉ định loại nội dung sẽ sử dụng khi gửi biểu mẫuNếu không có các thuộc tính ở trên, quá trình upload file sẽ không được thực hiện
type="file"
của thẻ <input>
hiển thị trường đầu vào dưới dạng lựa chọn file, với nút "submit" dùng để gửi dữ liệu tới file PHP xử lýForm sẽ gửi dữ liệu tới file PHP xử lý có tên là upload.php. File này chúng ta sẽ tạo ở những bước tiếp theo
Chúng ta sẽ tạo một file có tên là upload.php để xử lý dữ liệu gởi lên của form HTML. File php xử lý dữ liệu này được đặt cùng cấp với file chứa biểu mẫu HTML, nội dung file như sau:
<?php $target_dir = "uploads/"; $target_file = $target_dir.basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Kiểm tra xem file hình ảnh là thật hay ảo if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File đúng định dạng - ".$check["mime"]."."; $uploadOk = 1; }else{ echo "File không đúng định dạng."; $uploadOk = 0; } } ?>
Ý nghĩa của đoạn code trên như sau
Lưu ý
Bạn cần tạo một folder trên máy chủ có tên là uploads, các file hình ảnh upload lên sẽ được lưu ở đó
Chúng ta sẽ thêm một số điều kiện để kiểm tra tính hợp lệ của file upload
Chúng ta sẽ kiểm tra xem file đã tồn tại trong thư mục "uploads" hay chưa. Nếu có, một thông báo lỗi sẽ hiển thị và biến $uploadOk được gán giá trị là 0.
// Kiểm tra file có tồn tại hay chưa if(file_exists($target_file)){ echo "file đã tồn tại."; $uploadOk = 0; }
Chúng ta sẽ kiểm tra xem file có kích thước lớn hơn 500KB hay không. Nếu có, một thông báo lỗi sẽ hiển thị và biến $uploadOk được gán giá trị là 0.
// Kiểm tra kích thước file upload if($_FILES["fileToUpload"]["size"] > 500000){ echo "File có kích thước lớn hơn 500KB."; $uploadOk = 0; }
Chúng ta chỉ cho phép người dùng tải lên các file ảnh có định dạng JPG, JPEG, PNG và GIF. Tất cả các loại file có định dạng khác đều tạo ra thông báo lỗi và gán giá trị biến $uploadOk là 0.
// Cho phép định dạng file upload if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ){ echo "File không đúng định dạng cho phép."; $uploadOk = 0; }
<?php $target_dir = "uploads/"; $target_file = $target_dir.basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Kiểm tra xem file hình ảnh là thật hay ảo if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File đúng định dạng - ".$check["mime"]."."; $uploadOk = 1; }else{ echo "File không đúng định dạng."; $uploadOk = 0; } } // Kiểm tra file có tồn tại hay chưa if(file_exists($target_file)){ echo " File đã tồn tại."; $uploadOk = 0; } // Kiểm tra kích thước file upload if($_FILES["fileToUpload"]["size"] > 500000){ echo " File có kích thước lớn hơn 500KB."; $uploadOk = 0; } // Cho phép định dạng file upload if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ){ echo " File không đúng định dạng cho phép."; $uploadOk = 0; } // Nếu file upload có lỗi if($uploadOk == 0){ echo " File upload không thành công."; // Ngược lại, cho phép upload file }else{ if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){ echo " File ".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])). " uploaded thành công."; }else{ echo " Đã có lỗi xảy ra, vui lòng thử lại sau."; } } ?>
Các bạn hãy copy đoạn code và tự mình chạy thử nhé, chúc các bạn thành công