У меня есть форма для загрузки, и я проверяю размер файла и тип файла, чтобы ограничить загруженный файл до 2 мегабайт и файлов .pdf,.jpg,.gif или .png. Моя цель - показать пользователю предупреждение, если они нарушают одно из этих правил.
Существует четыре сценария:
- Правильный размер/правильный тип (рабочий)
- Правильный размер /INCORRECT Тип (рабочий)
- INCORRECT Размер/Правильный тип (не работает)
- INCORRECT Размер /INCORRECT Type (не работает)
В моем текущем коде всегда отображается неверное сообщение типа, когда размер файла превышает 2 мегабайта (# 4), даже если тип файла верен (# 3).
Любые идеи, почему?
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);
}
}