Foros del Web » Programando para Internet » PHP »

Me lío con los thumbnails

Estas en el tema de Me lío con los thumbnails en el foro de PHP en Foros del Web. Soy novato en php y estoy haciendo mis primeros pinitos, creo un formulario en el que puedo meter una referencia, cuatro fotos y un comentario, ...
  #1 (permalink)  
Antiguo 01/12/2004, 12:12
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Me lío con los thumbnails

Soy novato en php y estoy haciendo mis primeros pinitos, creo un formulario en el que puedo meter una referencia, cuatro fotos y un comentario, a modo de como si fuese un articulo de un catalogo, vale hasta ahí bien, me subo las fotos y los datos a la base de datos, el caso es que las fotos que se van a subir van a estar siempre a una resolución muy alta, 1200 X no sé cuanto y yo quiero trabajar con ellas por ejemplo en 400X lo que corresponda, pero a su vez cuando muestre los datos de un articulo voy a necesitar que me salgan abajo unas miniaturas pongamos de 120X120 y al pinchar en ellas me salga en la misma hoja en un apartado la grande que sería la de 400X lo que sea, osea la original de 1200X lo que sea no se necesita para nada, el caso es que estoy liado con los thumbnails y no sé como trabajar con ellos, a ver si alguien puede explicarme un poco como lo puedo hacer, se que va a ser un coñazo pero os pongo los codigos que uso

En el siguiente codigo pongo el formulario y la consulta todo a la vez para no liar, es decir en la misma pagina subo y veo pero claro veo la grande 1200 que no quiero entonces ahí debería de trabajar ya con las miniaturas de 120 y las de 400 al pinchar sobre ellas.

la pagina se llamaría pisos_alquiler.php

<FORM enctype="multipart/form-data" method="post" action="subir.php">
<p align="center"><font size="5">Archivo de imagenes</font><br>
Código PHP:
   <?php 
if ($_GET['s']!="")
    echo 
"<font color='#FF0000'>Se ha guardado la imagen</font>";
?>
</p>
<p align="center">Referencia
<input name="referencia" type="text" id="referencia" size="40" maxlength="50">
Fecha
<input name="fecha" type="text" id="fecha">
<br>
<INPUT type="file" name="userfile" size="30">
foto 1</p>
<p align="center">
<input name="userfile2" type="file" id="userfile2">
foto 2</p>
<p align="center">
<input name="userfile3" type="file" id="userfile3">
foto 3 </p>
<p align="center">
<input name="userfile4" type="file" id="userfile4">
foto 4
</p>
<p align="center">descripcion
<textarea name="descripcion" cols="50" rows="15" id="descripcion"></textarea>
<br>
<INPUT type="submit" name="submit" value="Subir archivo">
</p>
</FORM>
Código PHP:
<?php 
mysql_connect
("localhost","root","") or die ("no se ha podido conectar a la BD"); 
mysql_select_db("inmobiliaria") or die ("no se ha podido seleccionar la BD"); 
$id=$_GET['id'];
if (
$id!="")
{
    
$sql "SELECT * FROM pisos_venta WHERE ID<=".$id." ORDER BY ID DESC";
}
else
{
    
$sql "SELECT * FROM pisos_venta ORDER BY ID DESC";
}
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta"); 
$i=0;
echo 
"<center>";
While ((
$i<5) and $registro=mysql_fetch_assoc($consulta)  )

    echo 
"<b>".$registro['referencia']."</b><br>";
    echo 
"<b>".$registro['fecha']."</b><br>";
    echo 
"<br>".$registro['descripcion']."<br><br>"
    echo 
"<img src='".$registro['imagen1']."'><br><br>"
    echo 
"<img src='".$registro['imagen2']."'><br><br>";
    echo 
"<img src='".$registro['imagen3']."'><br><br>";
    echo 
"<img src='".$registro['imagen4']."'><br><br>";
    
    
$i=$i 1;
}
$registro_tmp=$registro=mysql_fetch_assoc($consulta);
if (
$id!="")
{
    
$sql "SELECT * FROM pisos_venta WHERE ID>".$id." ORDER BY ID asc";
    
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta"); 
    
$i=0;
    While ((
$i<100) and $registro=mysql_fetch_assoc($consulta)  )
    { 
        
$id=$registro['id'];
        
$i=$i+1;
        
$entraEnElBucle="si";
    }
    if (
$entraEnElBucle!="")
        echo 
"<a href='imagenes.php?id=".($id)."'>Pagina Anterior &nbsp;&nbsp;&nbsp;</a>";

if (
$registro_tmp)
{
    echo 
"<a href='imagenes.php?id=".$registro_tmp['id']."'> Siguiente Pagina</a>";


?>
El siguiente codigo me sube los datos a la bd

la página se llama subir.php
Código PHP:
<? 
$nombre_archivo 
$_FILES['userfile']['name']; 
$nombre_archivo2 $_FILES['userfile2']['name']; 
$nombre_archivo3 $_FILES['userfile3']['name'];
$nombre_archivo4 $_FILES['userfile4']['name'];
$tipo_archivo $_FILES['userfile']['type']; 
$tamano_archivo $_FILES['userfile']['size']; 
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 1000000))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 1Mb máximo.</td></tr></table>"
}else{ 
    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], "temporal/".$nombre_archivo))
    if (
move_uploaded_file($_FILES['userfile2']['tmp_name'], "temporal/".$nombre_archivo2))
    if (
move_uploaded_file($_FILES['userfile3']['tmp_name'], "temporal/".$nombre_archivo3))
    if (
move_uploaded_file($_FILES['userfile4']['tmp_name'], "temporal/".$nombre_archivo4)){ 
       echo 
"El archivo ha sido cargado correctamente en"."temporal/".$nombre_archivo


$conexion mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor."); 
mysql_select_db("inmobiliaria",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. 

//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO pisos_venta (id, referencia,fecha,imagen1,imagen2,imagen3,imagen4,descripcion) VALUES ('', '".$_POST['referencia']."','".$_POST['fecha']."','temporal/$nombre_archivo','temporal/$nombre_archivo2','temporal/$nombre_archivo3','temporal/$nombre_archivo4','".$_POST['descripcion']."')"
echo 
$consulta_insertar;
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: imagenes.php?s=1"); // si ha ido todo bien 
exit; 



    }else{ 
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

?>
Entonces ahora por ejemplo para que las imagenes que me metió en la carpeta temporal no sean las grandes de 1200X lo que sea sinó que ya sean las miniaturas o mejor dicho las de 400X lo que sea las que me muestre así como que cuando haga una consulta acerca de un producto me saque las minis de 120X lo que sea, no me aclaro con los ejemplos que poneis aquí para los thumbnails porque no sé como decirle el nombre de la foto con la que tiene que trabajar en el momento de hacer esa consulta, ni la dirección a un articulo determinado y si lo hay que hacer para todos ya que se van a ir subiendo todos los días articulos o productos como lo quieras llamar y mostrando luego sus caracteristica. No sé a ver si alguien me puede orientar, recordar que estoy empezando con esto y no tengo muy claro todavía como hacer referencia a las cosas, venga lo dicho si hay alguien que me heche un cable se lo agradecería un montón, salu2 y gracias de antemano
  #2 (permalink)  
Antiguo 01/12/2004, 12:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Este codigo te deja la misma imagen grande, con un tamaño pequeño, es decir, la imagen "pesa" lo mismo (lo que implica, creo, que no hace mas rapido la visualizacion de las imagenes pequeñas), pero se ve de otro tamaño.

echo "<img src='".$registro['imagen1']."' width='120' height='120'><br><br>";
  #3 (permalink)  
Antiguo 01/12/2004, 12:47
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
ya,ya, creo que te entiendo, voy a probar y te comento, muchísimas gracias
  #4 (permalink)  
Antiguo 01/12/2004, 14:16
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno, he probado lo que tu me decías y funciona, pero efectivamente no reduce el peso de la foto, yo no es que lo haga por el peso, hombre eso ayuda, lo hago porque la imagen es demasiado grande y tengo que trabajar con miniaturas a la hora de mostrar un articulo en una tabla con un simple comentario y luego cuando el cliente ya pinche entre en una ventana y pueda leerlo todo y ver las imagenes a un tamaño por ejemplo de 400 y para eso si necesito hacer lo que realmente son los thumbnails, pero no consigo aclararme con ellos, necesito que la foto que se suba ya me la convierta a tamaño de 400 y en la base de datos me salga ya el path de esa imagen reducida a 400 y poder luego trabajar con las miniaturas de 120 por ejemplo haciendo más thumbnails, no sé voy a seguir haciendo pruebas a ver si consigo dar con ello, digamos que lo que intento hacer es un catalogo pero si cojo uno de esos que ya estan hechos entonces si que no me aclaro y aparte no hay uno especifico para trabajar con material de una inmobiliaria, venga salu2 y gracias por tu ayuda que aunque no lo creas si me ha ayudado algo, chao claudiovega
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:02.