Вкл. MAX_FILE_SIZE
Читать это:
... В http://pk.php.net/manual/en/features.file-upload.post-method.php и эквивалентных местах в других форматах указано
что браузеры принимают значение поля формы MAX_FILE_SIZE в
счет.
Эта информация повторяется в других местах в Интернете и в книгах, но
кажется, происходит из документации PHP (он не появляется в
условия других серверных технологий ).
В HTML, HTTP или связанных спецификациях нет ничего, что могло бы указывать
что это так (в частности, RFC 1867, который представил файл
при загрузке в HTML это не упоминается , так что это даже не случай
что было упомянуто в первом RFC, а затем упал)
смысл в контексте спецификаций HTML (нет ничего, чтобы указать
связь между этим конкретным скрытым вводом и вводом файла).
Единственные утверждения о скрытых полях, которые я мог найти в любом из них, были
предупреждения в разделах, посвященных соображениям безопасности, от пользовательских агентов
основывая любые связанные с файлами операции на чем-либо, упомянутом в скрытом
поле.
Похоже, что браузеры не выполняют это как «расширение» . Действительно, учитывая, что
есть потенциально другие возможные значения для скрытого поля с
это имя в приложении, обрабатывающем несколько загрузок файлов,
можно считать недостатком дизайна, который любой сделал.
Я утверждаю, что в основных браузерах такого механизма нет (если есть)
вообще) и действительно не должно быть. Ссылка на него должна быть исключена из
документация.
Я бы также предположил, что, так как эта идея распространилась из этого
документация в другом месте, что записка о том, что он не работает, должна быть
добавлено.
Если требуется механизм или требуется для более быстрой обработки этого
Что-то вроде проблемы с обработкой файлов, поэтому для работы PHP требуется функциональность
перехватывать загружаемые потоки до завершения запроса, что
будет полностью отличаться от того, как эта документация предлагает это
нужно иметь дело, даже если это правда ...
приведенный ниже код взят из реализации swfUpload php:
// Check post_max_size (http://us3.php.net/manual/en/features.file-upload.php#73762)
$POST_MAX_SIZE = ini_get('post_max_size');
$unit = strtoupper(substr($POST_MAX_SIZE, -1));
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
if ((int)$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) {
header("HTTP/1.1 500 Internal Server Error");
echo "POST exceeded maximum allowed size.";
exit(0);
}
// Validate the file size (Warning the largest files supported by this code is 2GB)
$max_file_size_in_bytes = 2147483647;
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
if (!$file_size || $file_size > $max_file_size_in_bytes) {
HandleError("File exceeds the maximum allowed size");
exit(0);
}