Foros del Web » Programando para Internet » PHP »

Galeria de Fotos en PHP

Estas en el tema de Galeria de Fotos en PHP en el foro de PHP en Foros del Web. Alguien sabe como puedo armar una galeria de fotos en PHP? Gracias Atte. Gonzalo Valdez Ing. en Sistemas Programador BackOffice...
  #1 (permalink)  
Antiguo 17/04/2002, 01:22
 
Fecha de Ingreso: abril-2001
Ubicación: Argentina
Mensajes: 67
Antigüedad: 23 años
Puntos: 0
Galeria de Fotos en PHP

Alguien sabe como puedo armar una galeria de fotos en PHP?

Gracias



Atte. Gonzalo Valdez
Ing. en Sistemas
Programador BackOffice
  #2 (permalink)  
Antiguo 17/04/2002, 02:36
 
Fecha de Ingreso: enero-2002
Ubicación: Cádiz, España
Mensajes: 96
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Galeria de Fotos en PHP

es una cosas bastante sencilla. Te creas una Tabla en la Base de Datos, donde vas a meter las fotos, los campos obligatorios serían:

Id (Codigo)
Foto (Nombre de la foto)

Yo lo que hago es meter todas las fotos en un mismo directorio, y ya está. Si lo quieres complicar un poco más, por ejemplo yo pongo una foto Grande y otra Pequeña ¿para q? Pues para mostrar las fotos pequeñas y cuando pinchas te sale la grande, claro. Lo que hago es que las guardo así.

nombrefoto_g.jpg
nombrefoto_p.jpg

En la base de datos guardo "nombrefoto" y le pongo el resto (_g.jpg o _p.jpg), según quiera que sea grande o pequeña.

Si quieres complicarlo un poco más, aunque no es ninguna complicación, le pones más campos, por ejemplo, Titulo y Comentario, y le puedes poner categorías. Pero eso es a gusto del consumidor

Un saludo, y espero que te sirva

<a href="http://www.lomascurioso.com"><img src="http://www.lomascurioso.com/img/lomasforos.gif" BORDER="0"></a>
  #3 (permalink)  
Antiguo 17/04/2002, 18:38
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Galeria de Fotos en PHP

yo he hecho una galeria dinamica que funciona sin base de datos, osea, solo con indicar el directorio: conste de dos archivos:
index.php
------------------
&lt;table border=1 bordercolor=black cellpadding=4 cellspacing=2&gt;&lt;tr&gt;&lt;?
$max = &quot;3&quot;; // máximo de fotos por fila
$num = 0;
$abrir=opendir(&quot;img/&quot;); // aqui defines el directorio de imagenes
while ($img=readdir($abrir)){
$x1 = explode(&quot;.&quot;, &quot;$img&quot;);
$x2 = count($x1);
if(($x1[$x2-1] == jpg) || ($x1[$x2-1] == JPG) || ($x1[$x2-1] == gif) || ($x1[$x2-1] == GIF)){
$num++;
if($num &gt; $max){
echo&quot;&lt;tr&gt;&quot;;
}
if(($x1[$x2-1] == jpg) || ($x1[$x2-1] == JPG)){
$src= &quot;escala.php?id=$img&quot;;
}else{
$src= &quot;img/$img&quot;;
}
$fecha = filectime(&quot;img/$img&quot;);
$fecha = date(&quot;d/m/Y&quot;, $fecha);
$tamano = filesize(&quot;img/$img&quot;);
echo&quot;&lt;td&gt;&lt;center&gt;&lt;a href='img/$img'&gt;&lt;img src=\&quot;$src\&quot; border=0 width=100 height=100&gt;&lt;/a&gt;&lt;/center&gt;&lt;br&gt;&lt;font size=1 face=verdana&gt;&lt;b&gt;Nombre&lt;/b&gt; : $img&lt;br&gt;&lt;b&gt;Fecha&lt;/b&gt; : $fecha&lt;br&gt;&lt;b&gt;Tamaño&lt;/b&gt; : $tamano bytes&lt;/font&gt;&lt;/td&gt;&quot;;
if($num == $max){
echo&quot;&lt;/tr&gt;&quot;;
$num=0;
}
$fecha = &quot;&quot;;
$tamano = &quot;&quot;;
}
}
?&gt;
&lt;/tr&gt;
&lt;/table&gt;

escala.php
----------------------
&lt;?
$sz = 200;
$im = imagecreatefromJpeg(&quot;img/$id&quot;); // fijate que este bien la direccion hacia el directorio
$im_width=imageSX($im);
$im_height=imageSY($im);
if($im_width &gt;= $im_height)
{
$factor = $sz/$im_width;
$new_width = $sz;
$new_height = $im_height * $factor;
}
else
{
$factor = $sz/$im_height;
$new_height = $sz;
$new_width = $im_width * $factor;
}

// achicamos
$new_im=ImageCreate($new_width,$new_height);
ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$n ew_height,$im_width,$im_height);
header(&quot;Content-type: image/jpeg&quot;);
Imagejpeg($new_im,'',75); // quality 75
ImageDestroy($im);
ImageDestroy($new_im);
?&gt;
------
ok con estos dos archivos juntos y una carpeta con las imagenes llamada &quot;img&quot; se supone q funcionara, tiene una particularidad,en caso de ser jpeg la se crea una imagen a escala, espero te sirva.
choly be. :)

<iframe target="_top" src="http://genteloca.com/firma.htm" width="100%" height="70" border="0" framespacing="0" border="0" frameborder="0"> </iframe>
  #4 (permalink)  
Antiguo 07/05/2004, 05:20
Avatar de locko  
Fecha de Ingreso: abril-2004
Ubicación: Villabona Cyti
Mensajes: 252
Antigüedad: 20 años
Puntos: 0
Yo aun no e empezado con php pq me parece difiilillo, pero por presione sinternas voy a intentarlo algun dia porlo ke estoy mirando un pokillo por los foros.

De todas formas el codigo me parece ke no tiene posibilidad de paginar. me ekivoco??
pq creo ke para una galeria es algo bastante util ya ke sino se ralentiza la leche la carga.
  #5 (permalink)  
Antiguo 07/05/2004, 11:46
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 45
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

Código 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 )
    {
        
        
$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>';
    
?>
__________________
a por todassss
  #6 (permalink)  
Antiguo 09/12/2006, 12:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Galeria de Fotos en PHP

Cita:
Iniciado por alkañon Ver Mensaje
Código PHP:
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 )
    {
        
        
$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>';
    
?>
he probado esta galeria y me parece muy buena, solo que cuando subo imagenes son muchas a la vez, como mínimo unas 100, hay algun metodo para no subirlas una por una, algo asi como una comprobacion de imagenes nuevas¿?

PD: como hago para que las imagenes queden en un directorio aparte?
gracias
  #7 (permalink)  
Antiguo 12/12/2006, 05:11
Avatar de byweb  
Fecha de Ingreso: marzo-2006
Ubicación: Lucena (Cordoba)
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Galeria de Fotos en PHP

A mi me da problemas la base de datos no logro crearla, me dice:

Error

consulta SQL:

CREATE TABLE foto_foto(
idfoto int NOT NULL AUTO_INCREMENT PRIMARY KEY ,
foto_grande mediumblob,
foto_pequena mediumblob,
)

MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 5
¿ Donde esta el error ?
__________________
byweb Soluciones Multimedia
  #8 (permalink)  
Antiguo 12/12/2006, 06:51
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: Galeria de Fotos en PHP

Hola! porque no miras en http://www.hotscripts.com
aqui encontras ya d pre-fabricadas!

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #9 (permalink)  
Antiguo 12/12/2006, 13:10
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 45
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: Galeria de Fotos en PHP

Cita:
Iniciado por byweb Ver Mensaje
A mi me da problemas la base de datos no logro crearla, me dice:

Error

consulta SQL:

CREATE TABLE foto_foto(
idfoto int NOT NULL AUTO_INCREMENT PRIMARY KEY ,
foto_grande mediumblob,
foto_pequena mediumblob,
)

MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 5
¿ Donde esta el error ?
El error es que te sobra la coma despues de foto_pequena mediumblob
)
Saludos
__________________
a por todassss
  #10 (permalink)  
Antiguo 12/12/2006, 21:19
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Galeria de Fotos en PHP

Cita:
Iniciado por sergi_climent Ver Mensaje
Hola! porque no miras en hotscripts.com
aqui encontras ya d pre-fabricadas!

saludos
sinceramente no los encontre, tendria que revisar mas a fondo, pero implementé Gallery a mi sitio, y creo que por ahorita voy a dejarlo asi hasta que encuentre una mejor.
pero gracias de todas maneras
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 07:08.