Imagenes en base de datos con php I


Las bases de datos multimedia no son una tendencia nueva, es mas bien un requisito en cualquier base de datos, para hacer esto hasy dos opciones:

  • Almacenar las imagenes en un campo de la base de datos
  • Subir la imagen al servidor y almacenar en la base de datos el nombre y ubicacion de la misma.

Dado el peso que supondria el almacenamiento directo en la base de datos tomaremos la segunda opción, para lo que necesitaremos un formulario que solicite el archivo, algo así como la siguiente imagen

Para obtener el boton de seleccionar archivo recurrimos al siguiente codigo

Lo primero sera observar que la etiqueta form incluye el atributo enctype que define el tipo de codificación o encriptación, para el envio de un archivo se requiere que sea multipart/form-data

La etiqueta input sera del tipo file, su interpretación depende del navegador, en algunos solo aparecen un boton y en otros aparece un boton y una casilla de texto, de cualquier forma como la presente el navegador al hacer click sobre el boton que presenta esta etiqueta se abre la tipica ventana de abrir un archivo.

La etiqueta input de tipo file solo selecciona el archivo para carga, un PHP se encargara de subirlo al servidor, en este punto es importante recordar que AJAX no puede subir archivos, asi que es inutil intentar hacer el envio desde el XMLHTTPRequest.

El PHP que subira el archivo lo hemos llamado carga.php y este es su codigo fuente

A diferencia de los datos de culaquier otro formulario los archivos se reciben en PHP en la varaible $_FILES,  asi que vamos linea por linea

  1. la varaible uploaddir almacena el nombre de la carpeta donde se almacenara el archivo(esta carpeta ya debe de estar en el servidor).
  2. este se concatena en la variable  uploadfile con el nombre del archivo extraido a traves del método basename,
  3. se crean las variables de error y de resultado
  4. se usa el metodo isset para verificar que el nombre del archivo no existe en el servidor.
  5. Cuando el formulario envia el archivo lo envía a una ubicación temporal, se emplea la instrucción copy para enviarlo de dicha carpeta a la carpeta donde deseamos tenerlo.
  6. se verifica a traves de la variable de resultado si se pudo enviar el archivo y se presenta el mensaje corresponiente.

En un proximo post veremos como guardar el nombre del archivo en la base de datos y como presentarlo.

 

 

Anuncios

Acerca de sistemasumma

Blog dedicado a la tecnología y a todos los estudiantes de sistemas, informatica, computación y afines
Esta entrada fue publicada en Lenguajes de aplicaciones. Guarda el enlace permanente.

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s