Subir Ficheros al Servidor con PHP
José Sánchez Galvañ
Índice

Formulario para seleccionar Archivos
–
–

Propiedades del formulario.
Código HTML.
Página para almacenar el fichero
–
–
–
–
–
Propiedades de la página.
Propiedades del fichero de configuración del servidor.
Variables del fichero en el servidor.
Código PHP.
Envío de múltiples ficheros
Formulario para seleccionar
archivos





Creamos una página donde poder seleccionar el
fichero a enviar.
Formulario sencillo HTML.
Capacidad de enviar gran cantidad de información:
POST.
Llamara a un fichero .php encargado de subir el
fichero seleccionado: “subirF.php”
Atributos necesarios para poder enviar esa
información.
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE"
value="100000">
<b>Enviar un nuevo archivo: </b>
<input name=“nFichero" type="file">
<input type="submit" value="Enviar">
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
“subirF.php”:
Fichero en php
encargado
de subir el fichero
al
<input
type="hidden"
name="MAX_FILE_SIZE"
servidor. value="100000">
<b>Enviar un nuevo archivo: </b>
<input name="nFichero" type="file">
<input type="submit" value="Enviar">
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
“post”: Enviaremos el fichero
por name="MAX_FILE_SIZE"
la entrada estándar.
<input type="hidden"
value="100000">
<b>Enviar un nuevo archivo: </b>
<input name="nFichero" type="file">
<input type="submit" value="Enviar">
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
<input type="hidden"
name="MAX_FILE_SIZE"
“multipart/form-data”:Permite
subir datos y
archivos en un mismo formulario.
value="100000">
<b>Enviar un nuevo archivo: </b>
<input name="nFichero" type="file">
<input type="submit" value="Enviar">
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE"
value="100000">
<b>Enviar un
nuevo archivo: reservada:
</b>
“MAX_FILE_SIZE”:Palabra
Máximo tamaño del fichero(en
bytes).
<input name="nFichero"
type="file">
Debería de comprobarlo
el servidor.
<input type="submit"
value="Enviar">
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE"
value="100000">
<b>Enviar un nuevo archivo: </b>
<input name=“nFichero" type="file">
<input type="submit"
Referencia del ficherovalue="Enviar">
que
tendremos en el servidor.
</form>
HTML

<form action=“subirF.php" method="post"
enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE"
value="100000">
<b>Enviar un nuevo archivo: </b>
<input name=“nFichero" type="file">
<input type="submit" “file”:Seleccionar
value="Enviar">
el fichero.
</form>
Página para almacenar el fichero



Una vez en el servidor, el fichero se almacena en un
directorio temporal, a la espera de la aceptación o no
del fichero.
Si no se almacena, el fichero se elimina tras la
ejecución de la página.
Página donde:
–
–

Comprobaremos que el fichero cumple los requisitos.
Realizamos la copia del fichero en un directorio del servidor.
Formulario en PHP: “subirF.php”
Propiedades del fichero de
configuración del servidor.

Fichero php.ini:
–
Permitir subir ficheros al servidor
file_uploads = On
–
Seleccionamos un directorio temporal para los
archivos
upload_tmp_dir: “carp_temp/”
–
Tamaño máximo de los archivos.
upload_max_filesize = 2M
Variables de fichero en el servidor

$_FILES: variable que contiene la información del
fichero:
–
–
–
–
$HTTP_POST_FILES[“nFichero”][name]: Nombre original del
fichero en el cliente.
$HTTP_POST_FILES[“nFichero”][tmp_name]: Nombre del
fichero temporal en el servidor.
$HTTP_POST_FILES[“nFichero”][type]: Tamaño en bytes del
fichero.
$HTTP_POST_FILES[“nFichero”][error]: Error asociado al
fichero.
PHP
<? //Información del Archivo
$nombre_archivo = $HTTP_POST_FILES['nFichero']['name'];
$tamano_archivo = $HTTP_POST_FILES['nFichero']['size'];
$nombre_temporal= $HTTP_POST_FILES['nFichero']['tmp_name'];
//compruebo si las características del archivo son las que deseo
en variables
la información del archivo:
ifGuardamos
($tamano_archivo
< 100000)
{$nombre_archivo: Nombre del fichero original.
echo “El tamaño de archivo incorrecto.Tamaño maximo 100 Kb máximo. ";
}$tamano_archivo: tamaño del fichero.
else
$nombre_temporal: Nombre(temp) del fichero en el servidor.
{
if(move_uploaded_file($nombre_temporal, $nombre_archivo))
echo "El archivo ha sido cargado correctamente.";
else
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
?>
PHP
<? //Información del Archivo
$nombre_archivo = $HTTP_POST_FILES['nFichero']['name'];
$tamano_archivo = $HTTP_POST_FILES['nFichero']['size'];
$nombre_temporal= $HTTP_POST_FILES['nFichero']['tmp_name'];
//compruebo si las características del archivo son las que deseo
if ($tamano_archivo < 100000)
{
El
fichero
NO cumple
las propiedades.
echo
“El tamaño
de archivo
incorrecto.Tamaño maximo 100 Kb máximo. ";
}
else
{
if(move_uploaded_file($nombre_temporal,
$nombre_archivo))
El
fichero SI cumple las propiedades. Movemos
el fichero de su
echo "El archivo ha sido cargado correctamente.";
localización temporal, a una definitiva, asignándole el nombre
else
original
que queramos darle.
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
?>
PHP
<? //Información del Archivo
$nombre_archivo = $HTTP_POST_FILES['nFichero']['name'];
$tamano_archivo = $HTTP_POST_FILES['nFichero']['size'];
$nombre_temporal= $HTTP_POST_FILES['nFichero']['tmp_name'];
//compruebo si las características del archivo son las que deseo
if ($tamano_archivo < 100000)
{
echo “El tamaño de archivo incorrecto.Tamaño maximo 100 Kb máximo. ";
}
Mostramos un mensaje de error. Al salir, el fichero se elimina.
else
{
if(move_uploaded_file($nombre_temporal, $nombre_archivo))
echo "El archivo ha sido cargado correctamente.";
else
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
?>
PHP
else
{
}
if(move_uploaded_file($nombre_temporal, $nombre_archivo))
echo "El archivo ha sido cargado correctamente.";
else
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
move_uploaded_file: Movemos el fichero a la posición definitiva.Le
pasamos el fichero temporal el nombre con el que queremos guardarlo.
Podemos indicar una ruta:
Move_uploaded_file( $nombre_temporal, $direccion . $nombre_archivo)
Envío de múltiples ficheros


A partir de la versión 3.0.10
HTML
<input name=“nFichero[]" type="file">
<input name=“nFichero[]" type="file">

PHP
$HTTP_POST_FILES[“nFichero”][name][0];
$HTTP_POST_FILES[“nFichero”][name][1];
...y por ultimo...
...dudas y preguntas?
Descargar

Subir Ficheros al Servidor PHP