¿se puede guardar una imagen en mysql?como que tipo de dato lo creo?create table ima1 .........
Gracias
| |||
Debemos comenzar creando la base de datos y la tabla que almacenara el codigo de la foto, el thumbail y la foto en si create database fotos; create table fotos.foto_foto( idfoto int not null auto_increment primary KEY, foto_grande mediumblob, foto_pequena mediumblob, ); ///datos.php(pagina de configuracion) <?php $servidor=""; $nombre=""; $clave=""; ?> Ahora creamos un simple formulario que coja de nuestro ordenador el thumbail y la foto(deben estar previamente guardadas con el tamaño adecuado) observar elType del formulario, esto nos permite enviar tanto texto como ficheros ///form.php <? echo '<font size=1>'; echo '<center>'; echo'<form enctype="multipart/form-data" action="guardararchivo.php" method="post">'; echo 'Foto<br><input type="file" name="foto">'; echo '<br><br>'; echo 'Thum.<br><input type="file" name="thumbail"><br><br>'; echo '<input type=hidden name=max_file_size value=1000000>'; echo '<input type="submit" value="Enviar archivo">'; echo '</form>'; echo '<br><br><a href=descargar_archivo2.php>Ver album</a>'; ?> Esta es la pagina que guarda las fotos en la base de datos, da un mensaje de error o de exito y nos devuelve al formulario, es muy sencilla ///guardadararchivo.php <?php require ("datos.php"); echo '<center><font size=1>'; $conexion=@mysql_connect($servidor,$nombre,$clave) ; $res=mysql_select_db("fotos",$conexion); if ( $conexion > 0 ) { $archivo = $_FILES["foto"]["tmp_name"]; $tamanio = $_FILES["foto"]["size"]; $tipo = $_FILES["foto"]["type"]; $nombre = $_FILES["foto"]["name"]; $archivo_thumb = $_FILES["thumbail"]["tmp_name"]; $tamanio_thumb = $_FILES["thumbail"]["size"]; $tipo_thumb = $_FILES["thumbail"]["type"]; $nombre_thumb = $_FILES["thumbail"]["name"]; if ( $archivo != "none" && $archivo_thumb!="none") { $fp = fopen($archivo, "rb"); $contenido = fread($fp,$tamanio); $contenido = addslashes($contenido); fclose($fp); $fp_thumb = fopen($archivo_thumb, "rb"); $contenido_thumb = fread($fp_thumb,$tamanio_thumb); $contenido_thumb = addslashes($contenido_thumb); fclose($fp_thumb); $query = "INSERT INTO fotos.foto_foto VALUES(null,'".$contenido."','".$contenido_thumb." ')"; mysql_query($query); if(mysql_affected_rows($conexion) > 0)print "Se ha guardado el archivo en la base de datos."; else print "NO se ha podido guardar el archivo en la base de datos."; } else print "No se ha podido subir el archivo al servidor"; }else{ echo 'No conectado'; } echo "<HTML><SCRIPT>document.location='form.php';</SCRIPT></HTML>"; ?> A continuacion muestro como se puede crear un album de fotos con enlace a esa misma foto mas grande, la pequeña es el thumbail que hemos guardado con tamaño mas pequeño y la grande tambien la tenemos en la bas de datos(recomiendo comprimir mediante codigo con gzip)aqui no las comprimo porque se complica un poco el script. ///descargar_archivo2.php <?php require ("datos.php"); $conexion=@mysql_connect($servidor,$nombre,$clave) ; $res=mysql_select_db("fotos",$conexion); $qry = "SELECT idfoto,foto_pequena FROM fotos.foto_foto"; $res2 = mysql_query($qry); for ($j=0;$j < mysql_num_rows($res2);$j++) for ($i=0;$i < mysql_num_fields($res2);$i++) { $foto=basename(tempnam(getcwd(),'tmp')); $foto.=".jpg"; if ($i==1) { $contenido2=mysql_result($res2,$j,$i); $ft=fopen($foto,"w"); fwrite($ft,$contenido2); fclose($ft); echo '<a href=fotogrande.php?idfoto='.mysql_result($res2,$j ,0).'><img src='.$foto.'> '; echo ''; } } echo '<br><br><font size=1><center><a href=form.php>Insertar nuevas fotos</a>'; ?> y finalmente creamos la pàgina donde visualizamos las fotos en grande sencillo, no? ///fotogrande.php <?php require("datos.php"); $conexion=@mysql_connect($servidor,$nombre,$clave) ; $res=mysql_select_db("fotos",$conexion); $qry = "SELECT foto_grande FROM fotos.foto_foto where idfoto='".$_GET["idfoto"]."'"; $res2 = mysql_query($qry); $foto=basename(tempnam(getcwd(),'tmp')); $foto.=".jpg"; $contenido2=mysql_result($res2,0,0); $ft=fopen($foto,"w"); fwrite($ft,$contenido2); fclose($ft); echo '<center><img src='.$foto.'> <br><br>'; echo '<font size=1><a href=descargar_archivo2.php>Volver al album</a>'; ?> |
| |||
Hola, Chicos, tambien teneis este mensaje: http://www.forosdelweb.com/showthrea...highlight=blob En 85 respuestas habran aclarado mucho el tema. Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |