Solicitar un fichero en html y guardarlo en el servidor con php


   En este pequeño ejemplo o tutorial vamos a ver como soliticar un fichero mediante un formulario en html y después con php guardarlo en el servidor.

   Para comenzar tenemos nuestro formulario en html:

  
FORMULARIO FICHEROS
@ SandritaSCS












   Después nuestro código php tiene lo siguiente:
$archivo = $_FILES['ficheroUsuario']['tmp_name'];
$nombre_archivo = $_FILES['ficheroUsuario']['name'];
$directorioNuevo ="ficheros/";

move_uploaded_file($archivo, $directorioNuevo.$nombre_archivo);

echo "OK";

   No se utiliza la variable $_POST aunque el método sea POST. La variable que almacena los datos del fichero que queremos guardar es $_FILE. Con esta variable podemos recuperar la siguiente información:

  • $_FILE['fichero_usuario']['tmp_name'] -> El nombre temporal que se le asigna al fichero que queremos subir.
  • $_FILE['fichero_usuario']['name'] -> Nombre original del fichero que se ha subido.
  • $_FILE['fichero_usuario']['type'] -> Tipo de fichero ( si el navegador lo proporciona). No se refiere a la extensión sino por ejemplo si es una imagen sería "image/png".
  • $_FILE['fichero_usuario']['size'] -> Tamaño del fichero
  • $_FILE['fichero_usuario']['error'] -> Error asociado al fichero que se intenta subir.
   La función move_uploaded_file guarda el fichero temporal (por eso se usa la variable guardada con tmp_name) con el nombre que le proporcionemos y la ruta donde queremos guardarlo ( en este caso el nombre es el mismo que el fichero que se sube).

   Si queremos guardar el archivo con otro nombre podemos hacerlo así:

$archivo = $_FILES['ficheroUsuario']['tmp_name'];
$nombre_archivo = $_FILES['ficheroUsuario']['name'];
$info = pathinfo($nombre_archivo)['extension'];
$directorioNuevo ="ficheros/";

move_uploaded_file($archivo, $directorioNuevo."nombreNuevo.".$info);

echo "OK";

   Con la función patchinfo($fichero) se puede recuperar la extensión del fichero, así como el nombre base etc.
   Para descargar el código lo podéis hacer en el siguiente enlace -> CÓDIGO.

0 comentarios:

Publicar un comentario