Định nghĩa.
Hàm is_uploaded_file()
sẽ kiểm tra xem tệp có phải đã được tải lên bằng HTTP POST hay không.
Cú pháp.
Cú pháp:
is_uploaded_file ( string $filename
) : bool
Trong đó.
$filename
là đường dẫn tới file cần kiểm tra.
Giá trị trả về.
- Trả về TRUE nếu tệp hoặc thư mục được chỉ định bởi tên tệp tồn tại và có thể đọc được, FALSE nếu không.
Ví dụ.
Ví dụ 1.
code.
<?php if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n"; echo "Displaying contents\n"; readfile($_FILES['userfile']['tmp_name']); } else { echo "Possible file upload attack: "; echo "filename '". $_FILES['userfile']['tmp_name'] . "'."; } ?>
Ghi chú.
- Trả về TRUE nếu tệp được đặt tên theo tên tệp được tải lên qua HTTP POST. Điều này rất hữu ích để giúp đảm bảo rằng người dùng độc hại đã không cố gắng lừa tập lệnh hoạt động trên các tệp mà nó không nên hoạt động – ví dụ: etc / passwd.
- Loại kiểm tra này đặc biệt quan trọng nếu có bất kỳ cơ hội nào mà mọi thứ được thực hiện với các tệp được tải lên có thể tiết lộ nội dung của chúng cho người dùng hoặc thậm chí cho những người dùng khác trên cùng hệ thống.
- Để hoạt động đúng, hàm is_uploaded_file () cần một đối số như $ _FILES [‘userfile’] [‘tmp_name’], – tên của tệp được tải lên trên máy của khách hàng $ _FILES [‘userfile’] [‘name’] không làm việc.
Hàm liên quan.
- move_uploaded_file() – Di chuyển tệp đã tải lên đến một vị trí mới
- $_FILES
- See Handling file uploads for a simple usage example.
Thông tin thêm.
- Lưu ý rằng việc gọi hàm này trước khi move_uploaded_file () là không cần thiết, vì nó thực hiện cùng một kiểm tra chính xác. Nó không cung cấp thêm bảo mật. Chỉ khi bạn đang cố gắng sử dụng một tệp được tải lên cho một cái gì đó ngoài việc di chuyển nó đến một vị trí mới.
- Bất kỳ tập lệnh nào hoạt động với tệp tạm thời $ _FILES [] [‘tmp_name’] nên gọi hàm này. Trong mọi trường hợp tập lệnh được sửa đổi thành hủy liên kết (), đổi tên () hoặc sửa đổi tập tin IS NOT move_uploaded_file () sẽ không được kiểm tra tải lên. Tương tự, hầu hết các hoạt động tệp được lưu trong bộ nhớ cache trong PHP, do đó, nên có hiệu năng tối thiểu khi chạy is_uploaded_file trước khi move_uploaded_file, vì nó thường sẽ sử dụng kết quả được lưu trong bộ nhớ cache cho lần sau Các lợi ích bảo mật vượt xa sự khác biệt về hiệu suất của micro giây trong bất kỳ sự kiện nào và nên được sử dụng phổ biến ngay khi mảng $ _FILES lần đầu tiên được nhập vào một ứng dụng. Mặc dù có thể không có vấn đề ngay lập tức, mã phát triển và có thể nhanh chóng thay đổi thực tế này.
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm is_uploaded_file() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com