У меня есть простая форма с вводом файла загрузки.Это код, который обрабатывает эту форму:
$error = false;
if(isset($_POST["name"], $_POST["desc"], $_POST["aname"], $_FILES["skin"])) {
try {
// Validate the form
if(strlen($_POST["name"]) < 3 || strlen($_POST["name"]) > 24)
throw new Exception("Skin name needs to be between 3 and 24 characters.");
if(strlen($_POST["desc"]) < 3 || strlen($_POST["desc"]) > 32)
throw new Exception("Skin description must be between 3 and 32 characters.");
if(strlen($_POST["aname"]) < 2 || strlen($_POST["aname"]) > 16)
throw new Exception("Authors name must be between 2 and 16 characters.");
// Validate the file upload
if($_FILES["skin"]["error"] !== UPLOAD_ERR_OK)
throw new Exception("There was a problem uploading the file. Try again later.");
if($_FILES["skin"]["size"] > 204800)
throw new Exception("File size must be 200KB or less.");
} catch (Exception $e) {
$error = $e->getMessage();
}
}
А потом в моем коде у меня есть это:
if($error) {
echo "<p class=\"error\">Error: <i>$error</i></p>";
}
, который отображает ошибку над формой, если было сгенерировано исключениеранее в коде.Все отлично работает, кроме этого раздела:
if($_FILES["skin"]["size"] > 204800)
throw new Exception("File size must be 200KB or less.");
Я пытаюсь определить, превышает ли размер загружаемого файла более 200 КБ.Если это так, я хочу бросить исключение.Но если я отправлю файл размером 20 МБ через форму загрузки, он его вообще не уловит и не выдаст исключение.
Может кто-нибудь догадаться, почему?Я уже пробовал несколько разных комбинаций, но по какой-то причине он просто не распознает его размером более 200 КБ.
Любая помощь приветствуется, спасибо.
РЕДАКТИРОВАТЬ: Неважно, язабыл изменить настройку php.ini по умолчанию, ограничивающую размеры загрузки POST.Для тех, кто когда-либо сталкивался с этой проблемой, зайдите в файл php.ini и измените эту опцию: post_max_size = 8M
на то, что соответствует вашим потребностям.