¿Cómo debo manejar cargas http que exceden el post_max_size
de una manera sensata?¿Cómo detectar si un usuario subió un archivo más grande que post_max_size?
En mi configuración post_max_size
es unos MB mayor que upload_max_filesize
Los problemas que tengo son:
Si un usuario sube un archivo superior a post_max_size
- La matriz está vacía _POST
- Los HTTP_POST_FILES array está vacío y, por supuesto, los códigos de error no están presentes.
- No hay otra información sobre qué tipo de formulario publicar es accesible a través de estos medios.
Parte del problema es que la secuencia de comandos de recepción toma diferentes acciones dependiendo del contenido de la POST.
que tienen acceso a los _SERVER
las variables y pueden obtener pistas sobre lo que sucedió, es decir CONTENT_TYPE
, CONTENT_LENGTH
y REQUEST_METHOD
. Sin embargo, parece muy problemático hacer conjeturas basadas en esos contenidos.
MEMORY_LIMIT (establecido en 10 veces los tamaños correspondientes) y Apaches LimitRequestBody (establecido en ilimitado) no tienen la culpa.
Tal como está ahora, me es difícil incluso proporcionarle mensajes significativos al usuario.
¿Hay alguna manera de retener algunos datos del formulario para obtener mejores pistas sobre lo que salió mal? Soy muy reacio a alejarme de php.
Para ser claros, implementaría esto junto con algo como la cita en la respuesta de @King Skippus. es decir, utilice esta solución del lado del cliente para hacer felices a las personas, y luego busque la publicación vacía en el lado del servidor y actúe en consecuencia. – Matthew
Esto es útil. Mi principal preocupación es no poder notificar a mis usuarios de manera adecuada. ¿Alguna idea sobre el soporte en los navegadores actuales? –
@Captain Giraffe, creo que todos los navegadores no IE de uso común le permiten verificar el tamaño del archivo a través de JavaScript de esa manera, pero no estoy del todo seguro. (Y de nuevo, se degradará con gracia, por lo que no hay daño al usar esto como parte de su solución.) También, vea mi edición para una forma potencial de verificar si ocurrió un problema de carga. – Matthew