2010-11-23 6 views
19

Tengo un formulario de carga sencilla con:

enctype="multipart/form-data"/> 

y

input type="hidden" name="MAX_FILE_SIZE" value="5900000" /> 

Y los siguientes ajustes, que son aplicada (verificado a través phpini()) en php.ini:

upload_max_filesize = 7MB 
memory_limit = 64M 
post_max_size = 8MB 

intento cargar un archivo que es pequeño - 500k y va throu gh

intento cargar un archivo que es de 5 MB (más pequeño que ambos ajustes upload_max_filesize y post_max_size) y falla con código de error 1: lo que dice es:

UPLOAD_ERR_INI_SIZE Valor: 1; El archivo cargado excede la directiva upload_max_filesize en php.ini.

¿Alguien tiene una idea de lo que está pasando?

Respuesta

40

Creo que esto se debe a un error tipográfico. En lugar de

upload_max_filesize = 7MB 

debe decir

upload_max_filesize = 7M 

uso phpinfo() de nuevo para comprobar el valor que realmente se aplica.

+3

Tienes razón, eso resolvió el problema. El truco que no me di cuenta fue que phpinfo() muestra un valor de 7MB, pero no lo considera apropiado. ahora todo está bien, cariño – mgpepe

+0

+1 buen lugar :) – karim79

+0

oh dios. ¡gracias! – freeloader

6

También tiene que establecer la post_max_size en "php.ini"

3
upload_max_filesize = 7M 
here the value is in 7M or 10M but not MB. 
use `phpinfo()` again to check what value actually gets applied. 

Ejecutar este programa también una vez que se puede fácilmente entender cuál es el problema si la extensión del tamaño del archivo significa simplemente imprime puesto que excede la directiva upload_max_filesize en php.ini

 <?php 
     $error_types = array(
     1=>'The uploaded file exceeds the upload_max_filesize directive in php.ini.', 
     'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 
     'The uploaded file was only partially uploaded.', 
     'No file was uploaded.', 
     6=>'Missing a temporary folder.', 
     'Failed to write file to disk.', 
     'A PHP extension stopped the file upload.' 
     ); 

     // Outside a loop... 
     if($_FILES['userfile']['error']==0) { // here userfile is the name i.e(<input type="file" name="*userfile*" size="30" id="userfile"> 
     echo"no error "; 
     } else { 
      $error_message = $error_types[$_FILES['userfile']['error']]; 
      echo $error_message; 
     } 
by this we can easily identifies the poblem or we can use switch case also to print 
+1

Solo quería ver el enlace a los documentos php para obtener códigos de error y mensajes: http://php.net/manual/en/features.file-upload.errors.php – Kenneth

1

Aquí es un gran error que he hecho:

Si desea cargar archivos realmente grandes, debe establecer KeepAliveTimeout superior al valor predeterminado de 5 segundos.

Por ejemplo:

KeepAliveTimeout 300 

Puede encontrar esta propiedad en /etc/apache2/apache2.conf

0

Goto W HM->Service Configuration->PHP Configuration Editor y actualizar el valor de upload_max_filesize.

Cuestiones relacionadas