Peso máximo para copiar archivos en php

Estimados sucede que estoy haciendo una función bastante sencilla que copia un archivo a una carpeta en el servidor, sin embargo cuando corro el ejemplo encuentro que solo me permite pasar imágenes, o archivos pequeños, me gustaría saber como puedo hacer para copiar archivos .zip o de más peso; el código que estoy usando en este momento es el siguiente:

Formulario desde donde llamo la función

<form name="Enviar_archivo_frm" method="post" action="subir-archivo.php" enctype="multipart/form-data">
<input type="file" name="archivo_fls"/>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="submit" name="Subir_btn" value="Subir Archivo"/>
</form>

Función Subir-php

$tamano_archivo = $_FILES['archivo_fls']['size'];
$archivo=$_FILES["archivo_fls"] ["tmp_name"];
$nombre=$_FILES["archivo_fls"] ["name"];
$destino="Subir_Archivos/".$_FILES["archivo_fls"] ["name"];
 move_uploaded_file($archivo, $destino);

1 respuesta

Respuesta
4

Es posible subir ficheros de tamaño limitado mediante webmail o PHP, pero si se intenta adjuntar un archivo en un correo o subirlo a una página web siendo éste de tamaño considerable es posible que surjan errores referentes al tamaño del archivo. Esto es debido a que PHP tiene limitada la subida de archivos de un determinado peso por defecto, y hay que modificar ciertos valores para poder aumentarlo.

Dependiendo bajo que modo esté corriendo PHP en la página web o el webmail que está teniendo problemas, hay que modificar el php.ini correspondiente. Por ejemplo, si está corriendo bajo Apache la ruta probablemente sea/etc/php5/apache2/php.ini y en el caso de CGI sería /etc/cgi/apache2/php.ini 

__________

Solución

__________

Las variables que habría que modificar para aumentar el límite serían las siguientes:

upload_max_filesize = 2M
post_max_size = 8M

  • Upload_max_filesize: Deberás modificar 2M por el tamaño máximo deseado en MB
  • post_max_size: Deberás modificar 8M por el tamaño máximo deseado en MB + tamaño del formulario PHP (P.e.: Texto del mensaje)

Adicionalmente existen otros limites que también afectan al tamaño de adjunto máximo que PHP es capaz de manipular y que deberás revisar para el correcto funcionamiento de los cambios realizados:

max_execution_time = 30
memory_limit = 64M

  • Max_execution_time = 30: Si quieres subir el límite de subida en PHP necesitarás también aumentar este valor dependiendo del máximo de bytes establecidos anteriormente
  • memory_limit = 64M: Este valor habría que subirlo también debido a que controla la memoria máxima que un script puede consumir

Una vez realizados los cambios, hay que reiniciar el servicio web del servidor, normalmente se puede hacer con el comando:

/etc/init.d/apache2 restart

O bien:

/etc/init.d/httpd restart

En el caso de la variable memory_limit, esta debe ser mayor que la variable post_max_size.

Se ha de tener en cuenta a la hora de realizar estos cambios, que la variable post_max_size debe ser mayor que upload_max_filesize

Revisa la configuración del Servidor PHP y aumenta la capacidad del input:

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">

-------------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas