ESPAÑOL: ¡Bienvenido! Es la página inicial de OSIRIS LMS. Regístrese hoy mismo y obtenga acceso a todos nuestros CURSOS GRATUITOS. Clic aquí para registrarse ya. Hemos desarrollado una amplia gamma de cursos “online” (Programación, Multimedia, 3D, Habilidades suaves, etc.), disponibles 24X7. Para más detalle consulte la lista de Cursos Disponibles. Si tiene problemas con el acceso a la plataforma, vea el Tour Virtual de Osiris LMS. También puede consultar la sección de FAQ’s o enviar Solicitud de Soporte Técnico.

ForoForo de discusión
Upload de archivos con PHP
Buscador:
Foro > PHP > Upload de archivos con PHP

Enviado por: Texto del mensaje
Antonio Gonzalez
Nivel : Profesor
Mensajes : 23
> Perfil
Escrito el : Miércoles 30-08-2006 A las : 04:30 ( > un mes )
Asunto : Upload de archivos con PHP
En este artículo aprenderemos cómo subir un archivo al servidor por medio de un formulario.

Lo primero que debemos hacer es armar el formulario para permitir que el usuario indique que archivo desea subir al servidor, para esto utilizamos el tag de HTML <input> con su atributo type establecido como file, veamos el código HTML:

<form action="" method="post" enctype="multipart/form-data" name="forma">
<p align="center">Archivo:
<input name="archivo" type="file">
</p>
<p align="center"><input name="accion" type="submit" value="Enviar">


</form>


Observemos varios detalles importantes: el atributo enctype dentro del form esta establecido como multipart/form-data, esto es así porque vamos a enviar un archivo. Otro detalle importante son los nombres de los campos "archivo" para el input y "accion" para el submit.

Ahora vamos a crear el script que hará el trabajo de subir el archivo:

<?
if(isset($_POST['accion'])) {
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
$estatus = true;
}

if($estatus) {
echo "El archivo subió con éxito";
} else {
echo "El archivo no se subió con éxito";
}
}
?>


La primero que hacemos mediante la condicional if, preguntamos si la variable $_POST['accion'] esta presente, si esta presente quiere decir que se envió el formulario, entonces entramos al segundo if que comprueba que se haya enviado algún archivo. Si se envío el archivo copiamos mediante la función copy() del directorio temporal donde sube por defecto al lugar donde queremos alojarlo, es este caso al mismo directorio del script. Para especificar el directorio a donde queremos alojar el archivo tenemos que añadir la ruta completa al nombre de archivo de esta manera:

copy($HTTP_POST_FILES['archivo']['tmp_name'], $ruta.$HTTP_POST_FILES['archivo']['name']);

donde la variable $ruta es la ruta absoluta del directorio (Ej.: c:/archivos/). Para sistemas operativos Unix y Linux tenemos que asegurarnos que el directorio tenga los permisos adecuados para escritura (777).

Seguramente observaron que la variable $HTTP_POST_FILES aparece muy seguido en nuestro script, es una variable predefinida en PHP de tipo array que contiene información sobre el archivo que estamos subiendo, por ejemplo:

$HTTP_POST_FILES['archivo']['tmp_name'] - Guarda la ruta donde esta alojado temporalmente el archivo.
$HTTP_POST_FILES['archivo']['name'] - Guarda el nombre del archivo (Ej.: "archivo.txt").


Mediante esta variable también podemos obtener el tamaño y el tipo del archivo:

$HTTP_POST_FILES['archivo']['size'] - Devuelve el tamaño del archivo en bytes (ej: 10000)
$HTTP_POST_FILES['archivo']['type'] - Devuelve el tipo de archivo.(Ej.: image/jpeg)


Con esta información podemos validar que el archivo no supere el tamaño que queramos establecer o que no sea de otro formato no permitido.
Profesor de PHP
Osiris LMS
Amplía tus conocimientos en línea