Manejo de Datos BLOB con PHP y MySQL Parte 1
Un dato tipo BLOB es un objeto binario que puede tratar una cantidad de datos variables. Los cuatro tipos BLOB son TINYBLOB, BLOB, MEDIUMBLOB, y LONGBLOB. Difieren sólo en la longitud máxima de los valores que pueden tratar.
Un dato tipo BLOB se maneja en forma similar a un dato tipo TEXT. Es posible guardar una cadena de caracteres en ambos tipos de datos y extraerla de igual forma para los dos, no asi cuando se desea guardar un dato binario, ya que este se corrompe al guardarlo en un campo tipo TEXT. Un Campo Char rellenaria con espacios a la derecha hasta alcanzar la longitud del campo, Un campo VARCHAR truncaria los espacios que se encuentran a la derecha, asi tambien un campo tipo TEXT.
Ya que los datos en un archivo de imagen, documento, executable, media, etc, son datos binarios, estos no deben ser alterados y para evitarlo deben guardarse en campos tipo BLOB.
Este post se divide en 2 partes:
PARTE 1
- Creacion de una Tabla para Guardar Archivos.
- Forma de Envio de los Archivos.
- Guardando Archivos en Campos BLOB.
PARTE 2
- Visualizando Imagenes en Campos BLOB.
- Bajando Archivos desde Campos BLOB.
Creacion de una Tabla para Guardar Archivos.
Lo primero que necesitamos es crear en la base de datos una tabla para guardar estos archivos, la definicion que yo utilizo es la siguiente:
CREATE TABLE `mod_1_tbl_archivos` ( `id_archivo` int(10) unsigned NOT NULL auto_increment, `blb_archivo` longblob, `chr_tipo` varchar(100) default NULL, `chr_nombre` varchar(100) default NULL, `chr_bytes` varchar(50) default NULL, `txt_descripcion` text, `blb_thumb` longblob NOT NULL, PRIMARY KEY (`id_archivo`) ) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
Una vez hecho esto, continuamos con la forma de envio.
Forma de Envio de los Archivos.
Enviamos el archivo desde nuestra forma al script, registrar.php, en este ejemplo, para guardarlo.
<form name="frm_archivo" id="frm_archivo" action="registrar.php" enctype="multipart/form-data" method="POST"> <label>Archivo:</label> <input type="file" name="archivo1" id="archivo1"> <input type="submit" value="Guardar"> </form>
Guardando Archivos en Campos BLOB.
En nuestro script registrar.php recibimos el archivo.
//recepcion de archivos $archivo1 = $_FILES["archivo1"]["tmp_name"]; $tamanio1 = $_FILES["archivo1"]["size"]; $tipo1 = $_FILES["archivo1"]["type"]; $nombre1 = $_FILES["archivo1"]["name"]; //Abre el archivo para lectura en modo binario $fp = "fopen($archivo1, "rb")"; /*** Tuve que poner la funcion entre comillas dobles, ya que me ocasionaba problamas con el wordpress ***/ //Leemos el contenido desde el inicio hasta el tamaño del mismo y guardamos el contenido en $contenido $contenido = "fread($fp, $tamanio1)"; /*** Tuve que poner la funcion entre comillas dobles, ya que me ocasionaba problamas con el wordpress ***/ //Agregamos slashes a los caracteres especiales $contenido = "addslashes($contenido)"; /*** Tuve que poner la funcion entre comillas dobles, ya que me ocasionaba problamas con el wordpress ***/ //Cerramos el archivo que estabamos leyendo "fclose($fp)"; /*** Tuve que poner la funcion entre comillas dobles, ya que me ocasionaba problamas con el wordpress ***/
Con esto finalizamos la primera parte, el dia de mañana o pasado, publicare la segunda, donde veremos como abrir las imagenes o ver archivos pdf que hayamos subido
UNA DISCULPA POR LOS DESPLEGADOR DE CODIGO, DE MOMENTO TENGO ALGUNOS DETALLES CON EL PLUGIN SYNTAX HIGHLIGTHER EVOLVED
No related posts.

Héctor Azain Flores es Lic. en Sistemas Computacionales, ha sido programador desde 1995 utilizando variados lenguajes de programación como Basic, C++, Pascal, entre otros, actualmente trabaja como consultor de sistemas web, e integrando entre sistemas de escritorio y web. Sus hobbies actuales son su familia primeramente, la programación PHP y MySql, fotografia, entre otros.
|



Esta es la información exacta que estoy buscando , gracias! Arron