Sunteți pe pagina 1din 4

“Aplicaciones Web dinámicas

con PHP y MySql”

Upload de archivos al servidor


con PHP

RDBMS

Sergio Gabriel Rodríguez


http://www.3trex.com.ar

Configuración PHP.ini
• En determinadas situaciones, necesitamos poder subir archivos a nuestro
servidor desde un script PHP, ya sean imágenes, documentos, archivos
comprimidos, etc. PHP dispone de funciones para procesamiento de
archivos enviados al servidor

Para poder recibir archivos, deben tener establecidas las siguientes


directivas de configuración en el archivo PHP.ini

file_uploads: (On / Off): pemite que haya o no cargas de archivos

uploads_max_filesize: tamaño máximo del archivo que se puede subir

upload_tmp_dir: directorio temporal donde se guardan los archivos


cargados

post_max_size: tamaño máximo de los datos enviados por el método post


Formularios
• Un formulario puede enviar un archivo al servidor mediante un input de
tipo file. El formulario sería:

<form action=“subir_archivo.php" method="post" enctype="multipart/form-data">


<input type="file" name=“archivo" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>

• Es importante que el atributo method tenga el valor POST y que el atributo


enctype tenga el valor multipart/form-data.

Script PHP
•Cuando PHP recibe el archivo, lo almacena en el directorio
upload_tmp_dir y rellena la matriz asociativa superglobal
$_FILES . Esa matriz contiene los siguientes elementos:

$_FILES[“archivo"]["name"]: nombre que tenía el archivo cargado en la PC


del cliente.

$_FILES["archivo"]["type"]: tipo MIME del archivo cargado.

$_FILES["archivo"]["size"]: tamaño del archivo cargado.

$_FILES["archivo"]["tmp_name"]: nombre del archivo cargado en el directorio


temporal del servidor.

$_FILES["archivo"]["error"]: código de error (en su caso).


Script PHP
• Como el archivo del directorio temporal desaparecerá al
terminar el script, es necesario copiar el archivo a otro lugar.

• Para ello se utiliza la función move_uploaded_file()

move_uploaded_file($origen, $destino)

En la que $origen es el nombre del archivo cargado en el


directorio temporal (normalmente se puede utilizar directamente
$_FILES["archivo"]["tmp_name"]) y $destino el nombre del
archivo que contendrá la copia.

Ejemplo: envia.php

•Formulario de envío de un archivo, el enctype del forumulario


debe ser "multipart/form-data“.

<form action="recibe.php" method="post" enctype="multipart/form-


data">

<input type="file" name=“tapa" />


<input type="submit" name=“boton" value="Subir imagen" />

</form>
Ejemplo: envia.php

• Script php que recibe y procesa el archivo enviado:

<?php
$carpeta = 'imagenes' ;
$nombre = $_FILES [ ‘tapa' ][ 'name' ];
$temporal = $_FILES [ ‘tapa' ][ 'tmp_name' ];

if(move_uploaded_file ($temporal, $carpeta . '/' . $nombre)){


echo "archivo subido con éxito";
}else{
echo "hubo un error al intentar subir el archivo";
}
?>

S-ar putea să vă placă și