PROYECTO MIS IMÁGENES,



Documentos relacionados
Manejo de datos BLOB con PHP y MySQL

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00833B)

Manual de ayuda para la utilización del Correo Interno en el Campus Virtual

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

vgestorweb vgestorweb 1/9

Combinar comentarios y cambios de varios documentos en un documento

PROCESO DE SOLICITUD EN SÉNECA DE UN GRUPO DE TRABAJO.

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

Documentación del Terminal

Enviar Felicitación Navideña por con Off. 2007

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

MANEJANDO FICHEROS Y CARPETAS

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

REGISTRO ELECTRÓNICO DE FACTURAS

XAJAX: una librería de AJAX para PHP (parte 1)

Programa de Fabricación para Android

MACROS Y FORMULARIOS

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL SUBIDA Y PUBLICACION DE DOCUMENTOS PARTE II

Manual de ContaUploader para Contaplus

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA

Manual de OpenOffice Impress

Manual Impress Impress Impress Impress Impress Draw Impress Impress

PRÁCTICA 10. Configuración de Correo y Publicar en la Web

Curso Internet Básico - Aularagon

NUEVO SISTEMA DE MENSAJERÍA.

PRACTICA 6.6 VPN Logmein Hamachi registrarse en la página instalación,

Para ingresar al mismo debes hacer click en el ícono correspondiente en el panel de control.

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

CORREO WEB DE CNICE (Centro Nacional de Información y Comunicación Educativa)

NORMA (SEPA) 22/11/2013

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

MIGRACIÓN DEL MOODLE A MESTRE A CASA

Manual de configuración de Adobe Reader para la validación de la firma de un documento Versión 1.0

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

Para subir archivos usando los datos que nos proporcionaron vía correo electrónico.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

FUNDACION EDUCATIVA OBRERA FUNEDO TECNICO EN SECRETARIADO EJECUTIVO SISTEMATIZADO

IVOOX. 1º.-Subir y gestionar archivos.

13. FORMATO NORMALIZADO DE LA CUENTA GENERAL DE LAS ENTIDADES LOCALES EN SOPORTE INFORMÁTICO.

Manual de adminitración web

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Internet aula abierta

Internet Information Server

Manual de Instrucciones

Primeros pasos para una configuración rápida de la tienda.

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

B Visor de Pedidos Realizados en el día, de un Cliente o de TODOS pag.10

SIMPLESFONDOS. Contenido

Curso de PHP con MySQL Gratis

Configuración de programas FTP. Sync-Intertainment

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B)

Estimado usuario. Tabla de Contenidos

Manual de suscripción a fuentes RSS.

El catálogo y los listados

Manual para Declaración Anual

Versatils. Apéndice. ODBC Orígenes de datos. ODBC Orígenes de datos.

Manual de uso de Conect347_Logic

Comercial Cartas de Fidelización

Presentaciones en línea (II). Prezi y Slideshare

COMO CREAR UN ÁLBUM DE FOTOGRAFÍAS EN MICROSOFT OFFICE POWERPOINT?

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Diseño de páginas web

INYECCIóN DE CóDIGO EN APLICACIONES PHP. Autor: Iñaki Rodriguez (2005)

BrowserSQL 4 versión 2 - TUTORIAL

1.- Condiciones de uso de este tutorial 05

PROPUESTAS COMERCIALES

Microsoft Power Point

OBTENER DATOS EXTERNOS

CÓMO CREAR NUESTRO CATÁLOGO

ESCUELA DE ADMINISTRACIÓN

TcpStereo. Versión 1.1. Diciembre 2009 MANUAL DE USUARIO

CCONSIDERACIONES GENERALES EN JOOMLA!

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Sesión No. 2. Contextualización: Nombre de la sesión: Paquetería ASPEL - COI PAQUETERÍA CONTABLE

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

PRÁCTICAS DE GESTIÓN GANADERA:

Cómo gestionar menús en Drupal 7

Manual de instalación Actualizador masivo de Stocks y Precios

Compartir en línea. Cargar archivos. Principios básicos. Compartir en línea

SUBIR NUESTRA WEB AL SERVIDOR HTML (INTERNET) MEDIANTE EL EXPLORADOR DE ARCHIVOS DEL CPANEL. (CU00730B)

La publicación. Pere Barnola Augé P08/93133/01510

MANUAL PARA LA TOMA DE FOTOGRAFÍA PARA EL CERTIFICADO DE TERMINACIÓN DE ESTUDIOS DE EDUCACIÓN BÁSICA

Transcripción:

Jose Ignacio González Gómez. Departamento de Economía Financiera y Contabilidad Universidad de La Laguna www.jggomez.eu Tema: Script para subir ficheros a través de un formulario y almacenar otros campos y ruta del fichero en base de datos mysql Indice 1 PROYECTO MIS IMÁGENES, O REGISTRO DE CUALQUIER DOCUMENTO EN LA BASE DE DATOS Y EN EL SERVIDOR 1.1 OBJETIVOS Y CONSIDERACIONES INICIALES. 1.1.1 Interés 1.1.2 Necesidades previas: directorio de subida y base de datos. 1.2 SCRIPT CONEXIÓN (0CONFIG.PHP) 1.3 FORMULARIO (1FORMULARIO.PHP) 1.4 SCRIPTS BASES 1.4.1 Script subir fichero al servidor (2asubirfichero.php) 1.4.2 Script almacenar registro en la base de datos (2bregistroenlabd.php) 1.5 FUENTES DE INFORMACIÓN 1 Proyecto mis imágenes, o registro de cualquier documento en la base de datos y en el servidor 1.1 Objetivos y consideraciones iniciales. 1.1.1 Interés Nuestro objetivo es el desarrollo de una aplicación que nos permita subir ficheros al servidor y registrar datos en el mismo. Por ejemplo, una aplicación para que los usuarios depositen documentos de texto, imágenes o cualquier otro tipo de fichero. Para ello enfocamos la siguiente aplicación con sus correspondientes scripts. Es decir simplemente tratamos con un formulario como el de la Ilustración 1 Ilustración 1

2 Este formulario tiene un doble objetivo: 1. Por un lado almacenar el fichero, en este caso la foto del usuario en el directorio preestablecido para ello, en nuestro caso será uno que llamaremos almacen (ver Ilustración 3) 2. Por un lado guardar los datos nombre, apellidos y nombre y ruta del fichero subido. 1.1.2 Necesidades previas: directorio de subida y base de datos. Por tanto vamos a necesitar configurar una simple base de datos con la siguiente estructura básica expuesta en la Ilustración 2. Así dentro de la base de datos db298839651 hemos creado una tabla (ximagenes) que contendrá los datos asociados al formulario. Ilustración 2 Esta tabla básicamente se compone de cuatro campos: Id. Campo auto numérico donde almacenaremos el código de cada usuario Nombre. Campo texto que almacenara el nombre del usuario Apellidos. Campo texto que almacenaremos el apellido Ruta. Donde almacenaremos la ruta al fichero que subiremos, en concreto será la ruta de acceso a la foto del usuario. Ilustración 3 Como hemos comentado para desarrollar esta aplicación necesitamos contar con un directorio en el servidor (local o remoto) donde se almacenarán los ficheros que se suban y que en nuestro ejemplo hemos denominado como almacen (ver Ilustración 3). Además para llevar a cabo todo este proceso nos hemos basado en una serie de páginas y script que analizaremos a continuación. El proceso de la aplicación es el siguiente: 1. El usuario abre al formulario donde rellena los campos y selecciona el fichero deseado a subir al servidor y pulsando sobre el botón enviar ejecuta el script 2asubirfichero.php

3 2. A través del script 2asubirfichero.php se analiza si el fichero cumple los requisitos preestablecidos, por ejemplo, tamaño, tipo etc. Se pueden dar dos circunstancias: a. Que no se cumplan los requisitos y por tanto el fichero no se almacene por tanto se le advierte al usuario el error cometido. b. Que se cumplan los requisitos y por tanto el fichero se almacene con lo cual deberemos a continuación almacenar los datos del formulario en nuestra base de datos, para lo cual ejecutamos el script 2bregistroenlabd.php. 3. Este script sencillo lo único que hace es conectar con la base de datos y almacenar los datos del formulario, destacando que deberá almacenar el nombre y la ruta del fichero subido. 4. Por otro lado podemos desarrollar otras paginas para consultar y ver los registros asi como los documentos asociados a través de los script 3verregistros.php y 4consulta.php. 1.2 Script conexión (0config.php) Este script nos servirá para enlazar con la base de datos y la tabla. Por tanto será incluido en aquellas páginas u otros script donde sea necesario para trabajar con la base de datos. El hecho de separarlo del código de cada página, es decir en tener independiente la conexión con la base de datos es que si por cualquier motivo queremos cambiar la configuración de la conexión no tendríamos que ir pagina por pagina, sino simplemente cambiar el script una sola vez. Asi por ejemplo cuando subamos la base de datos al servidor y sea necesario cambiar los datos de conexión para adaptarnos a los requerimientos del servidor remoto, no necesitamos revisar todas las paginas y script de conexión, bastaría con modificar este general ya que el resto de paginas conectan con este a través de la sentencia: Include ( 0config.php ) Bueno básicamente este será similar al siguiente: <?php Ilustración 4 /* Parametros para conectar con la base de datos OJO INFORMACION SENSIBLE*/ $servidor="localhost"; // nombre del servidor $usuariomysql="root"; // nombre de usuario $password=""; // clave de usuario $database="db298839651"; // nombre de la base de datos /* Para insertar nuestra conexion a la base de datos debemos usar la siguiente sentencia */ // include "0config.php"; // $tabladatos="ximagenes"; // Poner aquí el nombre de la tabla donde guardar los datos.?>

4 1.3 Formulario (1formulario.php) Tal y como mostramos en la Ilustración 1 el formulario es simple solo que lo peculiaridad que cuando le damos a la tecla enviar este lleva asociado el cargar el script 2asubirfichero.php y que pasaremos a estudiar a continuación. Ilustración 5 Antes de continuar queremos destacar que este formulario contiene un campo especial tipo campo de archivo que es el que nos va a permitir seleccionar el fichero para subir al servidor y que hemos llamado internamente como userfile. 1.4 Scripts bases 1.4.1 Script subir fichero al servidor (2asubirfichero.php) Como hemos comentado anteriormente este script se ejecuta una vez el usuario haya pulsado el botón enviar del formulario (ver Ilustración 5) y su función es subir el fichero seleccionado al servidor. Exponemos el código comentado del citado script. (extraído y adaptado de http://www.forosdelweb.com/f18/subir-archivo-servidor-einclustar-direccion-mysql-683448/ ) <?php /* Para subir fichero a nuestro servidor */ // Configuración $folder = "almacen/"; // Carpeta a la que queremos subir los archivos $maxlimit = 5000000; // Máximo límite de tamaño (en bits) en megas pasarlo a $allowed_ext = "rar,jpg,txt,zip"; // Extensiones permitidas (usad una coma para separarlas) $overwrite = "no"; // Permitir sobreescritura? (yes/no) $match = ""; $error = ""; $filesize = $_FILES['userfile']['size']; // toma el tamaño del archivo $filename = strtolower($_files['userfile']['name']); // toma el nombre del archivo y lo pasa a minúsculas if (!$filename $filename == "") { // mira si no se ha seleccionado ningún archivo $error = "- Ningún archivo selecccionado para subir"; elseif (file_exists($folder. $filename) && $overwrite == "no") { // comprueba si el archivo existe ya $error = "- El archivo <b>$filename</b> ya existe<br>"; // comprobar tamaño de archivo if ($filesize < 1) { // el archivo está vacío $error.= "- Archivo vacío.<br>"; elseif ($filesize > $maxlimit) { // el archivo supera el máximo $error.= "- Este archivo supera el máximo tamaño permitido.<br>";

5 $file_ext = preg_split("/\./", $filename); // aquí no tengo claro lo que hace xd - Lo que hace es separar (split) la extensin del archivo $allowed_ext = preg_split("/\,/", $allowed_ext); // ídem, algo con las extensiones foreach ($allowed_ext as $ext) { if ($ext == $file_ext) $match = "1"; // Permite el archivo // Extensión no permitida if ($match) { $error.= "- Este tipo de archivo no está permitido: $filename.<br>"; ; if ($error!= "") { print "Se ha producido el siguiente error al subir el archivo:<br> $error"; // Muestra los errores else { if (move_uploaded_file($_files['userfile']['tmp_name'], $folder. $filename)) { // Finalmente sube el archivo print "<b>$filename</b> se ha subido correctamente!"; //el mensaje que saldra cuando el archivo este subido include "2bregistroenlabd.php";/* aqui invocamos al script para que almacene todos los datos en la bd una vez insertado el fichero */ else { print "Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo."; // Otro error?> Como podemos ver el código anterior es fácilmente adaptable a las necesidades. Simplemente destacar que si todo es correcto y finalmente el fichero se logro colocar adecuadamente en el servidor invocamos al segundo script para que se ejecute (2bregistroenlabd.php) y almacenar el registro en nuestra base de datos, ver la línea 7ª empezando por el final. 1.4.2 Script almacenar registro en la base de datos (2bregistroenlabd.php) Como comentamos este script tiene como función almacenar el registro en la base de datos, su código es el siguiente: <body> <?php /* Si todo a ido correcto queremos registrar los datos del formulario en nuestra tabla de la base de datos incluyendo la ruta donde se almaceno el fichero en la carpeta almacen*/ /* En primer lugar conectamos con la base de datos */ include "0config.php"; $link=mysql_connect($servidor,$usuariomysql,$password) or die ("<p class=\"texto1\">imposible realizar la conexión con la base de datos. Por favor, contacte con el administrador para solucionarlo."); mysql_select_db($database) or die ("<p class=\"texto1\">imposible seleccionar la base de datos. Por favor, contacte con el administrador para solucionarlo."); // Y ahora metemos los datos en la base de datos: // Primero rescatamos los datos del formulario $nombre=$_post['nombre']; $apellidos=$_post['apellidos']; // Reconstruimos la ruta donde acabamos de guardar la foto $rutafoto=$folder. $filename; $entrada_handle=mysql_query("insert into ".$tabladatos." SET nombre='$nombre', apellidos='$apellidos', ruta='$rutafoto'");

6?> <form> <INPUT TYPE="button" VALUE="Atrás" onclick="history.back()"> datos grabados correctamente </form> </body> </html> Recordar que primero insertamos (include) la conexión a la base de datos y después metemos todos los datos del formulario en la base de datos. 1.5 Fuentes de información http://www.forosdelweb.com/f18/subir-archivo-servidor-e-inclustar-direccion-mysql-683448/ http://www.programacion.com/php/articulo/datos_blob/