MAX_FILE_SIZE
в КБ, а не байтов. Вы были правы, это в байтах. Итак, для ограничения в 4 МБ convert 4MB in bytes {1024 * (1024 * 4)}
попробуйте:
<input type="hidden" name="MAX_FILE_SIZE" value="4194304" />
Обновление 1
Как объяснили другие, вы никогда не получите предупреждение за это. Это просто для того, чтобы установить мягкое ограничение на стороне сервера.
Обновление 2
Чтобы ответить на ваш подвопрос. Да, разница есть, вы НИКОГДА не доверяете пользовательскому вводу. Если вы хотите всегда накладывать ограничение, вы всегда должны проверять его размер. Не верьте тому, что делает MAX_FILE_SIZE
, потому что это может изменить пользователь. Итак, да, вам следует убедиться, что он всегда больше или больше того размера, который вы хотите.
Разница в том, что если вы наложили MAX_FILE_SIZE
2 МБ, а пользователь пытается загрузить файл 4 МБ, как только он достигнет примерно первых 2 МБ загрузки, передача прекратится, и PHP перестанет принимать больше данных для этот файл. Он сообщит об ошибке в массиве файлов.