2011-07-01 20 views
7

Establecí el límite de carga en 3M en php.ini. Si alguien carga un archivo que es de 50 mb, ¿la carga se detiene cuando llega a 3Mb o continúa hasta que se completa la carga, luego lee el tamaño del archivo y elimina el archivo?Carga de php y ancho de banda/pregunta de tráfico

+1

tan pronto como llegue a 3 se detendrá. deberías probarlo – Ibu

+0

@Ibu: ¿Qué servidor estás usando? No puede reproducir sus resultados en Apache :( – Piskvor

+0

Apache * en sí * tiene un límite en el tamaño de la publicación. ¿Podría ser el caso? –

Respuesta

5

Si está utilizando Apache como su servidor web, PHP no tiene la oportunidad de iniciarse hasta que la solicitud se complete. Por lo tanto, el límite de carga solo entra en acción después de finaliza la carga completa. Apache primero recibe la solicitud completa, y solo entonces invoca el controlador apropiado (en este caso, PHP). Dado que no existe un mecanismo del lado del servidor para cancelar una solicitud HTTP en progreso y devolver una respuesta, tendrá que esperar hasta que se complete la solicitud.

Por lo tanto, para responder a su pregunta: NO, la carga se realizará en su totalidad; La lógica interna de PHP verificará el tamaño del archivo cargado, verá que es más grande que el límite, y luego fallará inmediatamente con un error. Su script PHP tendrá y no para tener la oportunidad de ejecutar, así que no confíe en los controles de tiempo de ejecución, ya que no se ejecutarán en absoluto.

+0

Entonces alguien realmente podría abusar de ti y arruinar tu ancho de banda mensual qouta o arruinarte financieramente cargar archivos grandes sin parar para que malgaste el tráfico ¿verdad ?, que tiene que pagar 0,10 centavos por mí usando AWS. ¿Cómo puede evitar que suban archivos de gran tamaño por encima del límite? – BlackBrother

+0

@BlackBrother: sí, eso es (al menos teóricamente) posible. No sé cómo prevenir eso, excepto al bloquear una dirección IP tan abusiva. La documentación para la directiva de configuración de Apache 'LimitRequestBody' sugiere que podría ser útil aquí: http://httpd.apache.org/docs/2.0 /mod/core.htm l # limitrequestbody – Piskvor