Curso de PHP

Estás en: Ficheros : Subir fichero a una carpeta

Subir fichero a una carpeta

La variable externa $_FILES recoge propiedades de un formulario enviado por codificación multipart/form-data.

<form  ..... enctype="multipart/form-data" method="POST"...>
     <input type="file" name="fichero" ... />
</form>

$_FILES["nombredelcampo"]
[name]=Nombre de fichero *.jpg
[type]=Tipo de fichero img/jpg
[tmp_name]=Ruta temporal donde se deposita la información del fichero
[error]= 0/1
[size]= número de bytes

Copiar una imagen a una ruta concreta
copy ("rutaorigen", "upload/nombre_archivo");
copy ($_FILES['fichero']['tmp_name'], "upload/".$_FILES['fichero']['name'])

Esta función, al subir la imagen, si ya existe, la reemplaza.

Si queremos subir una imagen y llamarle de una forma fija, hacemos lo siguiente:
copy ("rutaorigen", "upload/foto.jpg");

Ejemplo
Mostrar un formulario, a través del cual se puede subir una foto a una carpeta

DENTRO DEL BODY
<?php 

/*	
$_FILES["nombredelcampo"]
[name]=Nombre de fichero *.jpg
[type]=Tipo de fichero img/jpg
[tmp_name]=Ruta temporal donde se deposita la información del fichero
[error]= 0/1
[size]= número de bytes
*/

if (!$_POST) {
?>
<form action="ficheros.php" method="post"  enctype="multipart/form-data" name="formulario">
   <label>Selecciona un fichero</label><br />
   <input name="fichero" type="file" />
   <br />
   <input name="enviar" type="submit" value="Enviar" /> <!--Si no se pone name no funciona, 
                                     porque el input para el fichero no lo reconoce como name -->
</form>
<?php
}else {
   echo "<pre>";
   echo print_r($_FILES);
   echo "</pre>";
	
   if (copy ($_FILES['fichero']['tmp_name'], "upload/".$_FILES['fichero']['name'])) 
      //copy ($_FILES['fichero']['tmp_name'], "upload/prueba.jpg") 
	  //-> Sube la imagen, pero le pone el nombre "prueba"
   {
       echo "El fichero".$_FILES['fichero']['name']." se ha subido correctamente";
   }else {
       echo "El fichero no es ha podido subir";
   }
}
?>