Tôi có biểu mẫu tải lên và đang kiểm tra kích thước tệp và loại tệp để giới hạn tệp được tải lên 2 megabyte và các tệp .pdf, .jpg, .gif hoặc .png. Mục tiêu của tôi là có một thông điệp cảnh báo được hiển thị cho người dùng nếu họ vi phạm một trong các quy tắc này.Làm cách nào để hạn chế kích thước tệp loại tệp tải lên bằng PHP?
Có bốn trường hợp:
- Chỉnh sửa kích cỡ/Đúng Kiểu (làm việc)
- Chỉnh sửa kích cỡ/KHÔNG ĐÚNG Loại (làm việc)
- Kích KHÔNG ĐÚNG/Đúng Kiểu (không làm việc)
- Kích thước INCORRECT/INCORRECT Loại (không hoạt động)
Với mã hiện tại của tôi, mã luôn hiển thị thông báo "loại" không chính xác khi kích thước tệp lớn hơn 2 megabyte (# 4), ngay cả khi loại tệp là chính xác (# 3).
Mọi ý tưởng tại sao?
if (isset ($_FILES['uploaded_file'])) {
$file_size = $_FILES['uploaded_file']['size'];
$file_type = $_FILES['uploaded_file']['type'];
if (($file_size > 2097152)){
$message = 'File too large. File must be less than 2 megabytes.';
echo '<script type="text/javascript">alert("'.$message.'");</script>';
}
elseif (
($file_type != "application/pdf") &&
($file_type != "image/jpeg") &&
($file_type != "image/jpg") &&
($file_type != "image/gif") &&
($file_type != "image/png")
){
$message = 'Invalid file type. Only PDF, JPG, GIF and PNG types are accepted.';
echo '<script type="text/javascript">alert("'.$message.'");</script>';
}
else {
store_uploaded_file($id);
}
}
xin lỗi, đó không phải là đại diện chính xác. cảnh báo không được gọi nếu tệp của họ thực sự được tải lên. câu hỏi được cập nhật. – Michael
Bạn có 'die()' ing hoặc 'exit()' ing sau 'header()' hay mã của bạn kết thúc sau câu lệnh if? –
xin lỗi, tôi đang cố tóm tắt. nó gọi hàm store_uploaded_file(), thực hiện các hành động khác trên trang. mã không kết thúc sau khi tải lên thành công. – Michael