En MAX_FILE_SIZE
leyeron:
... En http://pk.php.net/manual/en/features.file-upload.post-method.php y equivalentes ubicaciones en otros formatos, se hace constar que los navegadores toman el valor de un campo de formulario MAX_FILE_SIZE en cuenta.
Esta información se repite en otros lugares en la web y en los libros, pero parece que se origina a partir de la documentación de PHP (que no aparece en términos de otras tecnologías del lado del servidor).
No hay nada en cualquiera de los HTML, HTTP o especificaciones relacionadas para indicar que este es el caso (en particular, RFC 1867, que introdujo archivo subidas a HTML no lo menciona, por lo que no es incluso un caso de un kludge que se mencionó en el primer RFC y luego se descartó) ni tiene sentido en el contexto de las especificaciones de HTML (no hay nada que indique ninguna relación entre esa entrada oculta particular y la entrada de archivo) . Las únicas declaraciones sobre campos ocultos que pude encontrar en cualquiera de ellas fueron advertencias en las secciones de consideraciones de seguridad contra agentes de usuario basando cualquier operación relacionada con archivos en cualquier cosa mencionada en un campo oculto.
Ningún navegador parece realizar esto como una "extensión". De hecho, dado que existen potencialmente otros posibles significados para un campo oculto con ese nombre en una aplicación que maneja varias cargas de archivos, tendría para considerarse un defecto de diseño cualquiera.
Presento que no existe tal mecanismo en los navegadores mainstream (si hay alguno) en absoluto) y de hecho no debería serlo. La referencia al mismo debe eliminarse de la documentación .
Además, sugiero que, dado que esta idea se ha propagado a partir de esta documentación en otro lugar que una nota al respecto no funciona debe ser añadido.
Si se necesita o desea para manejar con mayor rapidez esta tipo de problema de manejo de archivo de un mecanismo de entonces se requiere funcionalidad para permitir PHP para interceptar las corrientes que se cargan antes de completar la solicitud, que sería completamente diferente a como sugiere esta documentación que debe tratarse, incluso si era cierto ...
el código de abajo vienen de swfUpload aplicación 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);
}
+1; buena investigación. – strager
'necesita verificar que el archivo cargado sea inferior a MAX_FILE_SIZE con PHP' no, no es así. Deshacerse de este campo inútil –
"requiere funcionalidad para permitir que PHP intercepte las secuencias que se cargan antes de completar la solicitud" -> PHP puede interceptar la solicitud si su longitud excede el límite especificado en 'post_max_size', pero requiere que el navegador envíe el encabezado de solicitud que contiene 'Content-Length', y de los navegadores modernos solo Opera parece estar enviando este encabezado. –