PHP post_max_size anula upload_max_filesize
php post max size (6)
En el host de mi sitio, he visto (a través de phpinfo) que
- post_max_size = 8Mb
- upload_max_filesize = 16Mb
Esto me llevó a pensar que debería poder subir un archivo de hasta 16Mb. Sin embargo, cuando hago esto a través de un método de publicación (como es normal), post_max_size toma el control y declara que he enviado demasiado.
¿Cuál es el método que permite enviar un archivo de hasta 16Mb? GET - PUT - ¿otro?
Espero que alguien pueda aclarar esto por mí.
Simon
post_max_size:
- Establece el tamaño máximo de datos de publicación permitidos. Esta configuración también afecta la carga de archivos
- Para cargar archivos grandes, este valor debe ser mayor que upload_max_filesize
- En general, memory_limit debe ser mayor que post_max_size.
- Valor predeterminado de PHP: 8M
upload_max_filesize:
- El tamaño máximo de un archivo cargado
- Valor predeterminado de PHP: 2M
memory_limit> post_max_size> upload_max_filesize
Valor predeterminado de PHP: 128M> 8M> 2M
De forma predeterminada, post_max_size debe ser 4 veces mayor que upload_max_filesize.
A su vez memory_limit debe ser 16 veces mayor que post_max_size
El método normal para enviar una carga de archivo es POST, por lo tanto, también post_max_size
debe ser de 16 Mb o más.
Por cierto, también memory_limit
juega un papel. Debería ser más grande que 16Mb, pero dado que el valor predeterminado es 128Mb, no verá este problema. Ejemplo de configuración php.ini
:
post_max_size = 16M
upload_max_filesize = 16M
memory_limit = 128M
Cambie estos valores en php.ini
si tiene acceso a ellos, de lo contrario, puede intentar cambiarlos en un archivo .htaccess
.
php_value upload_max_filesize 16M
php_value post_max_size 16M
Esto funcionará solo si la configuración AllowOverride
permite. De lo contrario, debes preguntarle a tu empresa de hosting.
La configuración de configuración del servidor permite a los usuarios cargar archivos de hasta 16MB (porque ha configurado upload_max_filesize = 16Mb) pero post_max_size acepta datos de publicación de hasta 8MB solamente. Es por eso que arroja un error.
Citado del post_max_size :
Para cargar archivos grandes, el valor de post_max_size debe ser mayor que upload_max_filesize.
memory_limit debe ser mayor que post_max_size
Siempre debe establecer su valor de post_max_size mayor que el valor de upload_max_filesize.
Por carga de archivo POST se realizan (comúnmente, también hay otros métodos). Mire en el atributo de método del formulario que contiene el campo de carga de archivos;)
El límite más bajo de cualquier configuración relacionada reemplaza una configuración más alta:
Consulte Manejo de cargas de archivos: Common Pitfals que explica esto en detalle y cómo calcular los valores.
cambio en php.ini max_input_vars 1000
upload_max_filesize
es el límite de cualquier archivo individual. post_max_size
es el límite de todo el cuerpo de la solicitud, que podría incluir varios archivos.
Dado post_max_size = 20M
y upload_max_filesize = 6M
, puede cargar hasta 3 archivos de 6M cada uno. Si, en cambio, post_max_size = 6M
y upload_max_filesize = 20M
entonces solo podría cargar un archivo de 6M antes de presionar post_max_size. No ayuda tener upload_max_size
> post_max_size
.
No es obvio cómo reconocer post_max_size
. $_POST
y $_FILES
estarán vacíos, pero $_SERVER[''CONTENT_LENGTH'']
será> 0. Si el cliente simplemente no subió ninguna variable o archivo, entonces $_SERVER[''CONTENT_LENGTH'']
será 0.