Foros del Web » Programando para Internet » PHP »

imagen en mysql?

Estas en el tema de imagen en mysql? en el foro de PHP en Foros del Web. ¿se puede guardar una imagen en mysql?como que tipo de dato lo creo?create table ima1 ......... Gracias...
  #1 (permalink)  
Antiguo 07/05/2004, 01:37
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
imagen en mysql?

¿se puede guardar una imagen en mysql?como que tipo de dato lo creo?create table ima1 .........
Gracias
  #2 (permalink)  
Antiguo 07/05/2004, 01:51
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 8
Antigüedad: 19 años, 11 meses
Puntos: 0
create table ima1(
idfoto int not null auto_increment primary KEY,
foto mediumblob,
);

si quieres te paso un script para guardar las fotos
  #3 (permalink)  
Antiguo 07/05/2004, 01:54
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
si

te lo agradeceria si me pasas el script para guardar als fotos, i si puedes una pekeña explicacion. Muchas gracias
  #4 (permalink)  
Antiguo 07/05/2004, 02:14
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 8
Antigüedad: 19 años, 11 meses
Puntos: 0
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.'>&nbsp;&nbsp;&nbsp;';
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.'>&nbsp;&nbsp;&nbsp;<br><br>';
echo '<font size=1><a href=descargar_archivo2.php>Volver al album</a>';
?>
  #5 (permalink)  
Antiguo 07/05/2004, 03:12
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
gracias

Muchas gracias por todo
  #6 (permalink)  
Antiguo 07/05/2004, 03:15
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:31.