Foros del Web » Programando para Internet » PHP »

Galeria fotos Jquery

Estas en el tema de Galeria fotos Jquery en el foro de PHP en Foros del Web. Hola a todos, les planteo mi tema: Soy diseñadora gráfica y web pero de php se muy poco aunque me defiendo con la lógica y ...

  #1 (permalink)  
Antiguo 22/09/2010, 19:26
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
De acuerdo Galeria fotos Jquery

Hola a todos, les planteo mi tema:
Soy diseñadora gráfica y web pero de php se muy poco aunque me defiendo con la lógica y los tutos que voy buscando aquí y allá.

Dicho esto les cuento que un cliente me pidió adicionarle a su sitio (hecho en html) una galería autoadministrable, por lo que intenté hacerlo yo misma.
Descargué una galería JQuery y no se como pero la hice funcionar dentro del sitio.
La cuestión es que no se como hacer para que pueda autoadministrarse, es decir que se puedan subir/eliminar fotos desde un admin y que luego aparezcan en la galería, es más las miniaturas las preparé aparte >(el tamaño) y me parece que eso también tendría que hacerlo solo el sistema no?

En fin, les dejo el lionk sobre el que estoy trabajando para que puedan verlo desde adentro a ver si encuentran los errores que debo tener ya que como verán estoy haciendo todo muy intuitivamente y aunque me facina el tema y tengo ganas de estudiar php a fondo, en este momento me urge resolver este tema, asi que les agradezco cualquier respuesta que pueda orientarme.

http://www.vecinomanjarin.com/zo-galery.php

Gracias!!
  #2 (permalink)  
Antiguo 22/09/2010, 20:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde Configuración PHP a PHP
  #3 (permalink)  
Antiguo 22/09/2010, 20:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Galeria fotos Jquery

Hola,

Lo que debes hacer es crear una aplicación en PHP que le pida al usuario las imagenes y si es necesario su descripción. Cuando el usuario envía la imagen te recomiendo que le cambies el tamaño por uno estándar y también crees la imagen pequeña. Desde PHP puedes hacerlo mediante la librería GD o utilizando ImageMagick (convert), la imagen la guardas en una carpeta del servidor preferiblemente cambiandole el nombre para que no se presenten repeticiones. Si también vas a mostrar la descipción de la foto entonces debes guardar el nombre del archivo y la descripción en algún lado lo recomendable sería en una base de datos, usualmente con PHP se utiliza MySQL.

Suponiendo que a quedó guardala la imagen y su descripción llega la hora de mostrarla en la galería, entonces lo que debes hacer es que el PHP que está mostrando actualmente tu galería se conecte a la base de datos obtenga la imagen y la descripción y genere el HTML para que lo muestre. El HTML que debe generar lo debes hacer para que sea igual al HTML que pusiste para que te funcionara tu galería actual sólo que ahora no vas a escribir la información sino que la vas a sacar de la base de datos.

Saludos,
  #4 (permalink)  
Antiguo 23/09/2010, 03:50
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Galeria fotos Jquery

Hola Marilin, lo que deseas no es nada complicado, solo amerita un poquito de dedicacion; Parar crear ese mini-sistema, deberas dividirlo en 4 secciones, uno se encargara de registrar nuevos datos lo cual podras hacerlo solo con un formulario, el segundo el que se encargara de editar los datos en caso de querer hacerlo, el tercero de mostrarlos todos, y ultimo para eliminarlos de ser necesario. Eso es lo que se conoce como un CRUD. Primero crear el formulario en HTML con todos los datos necesarios a guardar, y publícalo acá para ir guiándote con el código PHP, quien se encargara de almacenar en base de datos, y manipular las Fotografías a través de la librería GD. Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #5 (permalink)  
Antiguo 23/09/2010, 05:27
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Gracias por responder, les cuento que ya creé una base de datos e inserté los campos que voy a necesitar (todo guiándome por un videotutorial) la base de datos se llama LOTES y los campos son TITULO y DESCRPICION.
También creé un archivito que se llama lotes.php que al ejecutarlo en el navegador me muestra un básico formulario (no se sil lamarlo asi) para subir imagenes.
Pueden verlo en

http://www.vecinomanjarin.com/lotes.php

Sinceramente no se a dónde las guarda, jeje porque en la galeria no aparecen.
Debajo del botón de examinar van a ver una tabla con los datos que les mencioné arriba, eso tb lo hice guiada por un tuto, pero como ya ven tengo todo algo mezclado...

JoseAlejandro_Realza, ya mismo me pongo a crear el formulario que me pedis para poder subirlo cuanto antes gracias por el tiempo y la gran ayuda!
  #6 (permalink)  
Antiguo 23/09/2010, 08:30
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

He probado la pagina que dices y funciona ok...sube la foto...
Me puso:
La foto se registro en el servidor.
Y muestra la imagen...

Ahora quien se encarga de subir esa foto es pagina2.php o sea que para saber que estas haciendo con la foto o donde se esta guardando deberia revisar ese codigo...o publicarlo por aqui.

No es complicado moverla a la carpeta del servidor que quieras.
Para despues buscar las imagenes en esa carpeta y mostrarla tal cual haces hoy en tu sitio.

Comenta como te ha ido.
Saludos.
  #7 (permalink)  
Antiguo 23/09/2010, 08:49
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Sandinosaso, acá te pego el código de la página2.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>

<?php
copy($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
echo "La foto se registro en el servidor.<br>";
$nom=$_FILES['foto']['name'];
echo "<img src=\"$nom\">";
?>


</body>
</html>

Si a mi también me fuciona de esa manera.
Acabo de insertar el código que aparecía en pagina2.php en donde aparecen las miniaturas en zo-galery.php y aparece la imagen... pero enorme, no del tamaño de la miniatura..
De dónde puedo cambiar ese tamaño?


Gracias por responder!!

Última edición por marilinadg; 23/09/2010 a las 09:20
  #8 (permalink)  
Antiguo 23/09/2010, 13:37
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Galeria fotos Jquery

Hola Marilin, disculpa pero no comprendo del todo lo que hiciste, veo que crearas una tabla solo con 2 campos, y por otro lado, crearse un formulario donde subes la foto y por lo que pude ver, la almacena directamente en la raíz de tu servidor, cuando deberías de colocarlo por lo menos en una carpeta, algo así : http://www.vecinomanjarin.com/imagenes/. Por otro lado el formulario encargado de subir la foto, debe ser el mismo donde insertaras los datos correspondientes a la base de datos, la cual debería tener una estructura similar a esto -> id para cada registro único, titulo (es obvio), contenido (es obvio), url_foto donde guardaras la dirección de la foto cargada, para que al momento de listar los datos puedas recogerla y así mostrarla. Cualquier duda pregunta. Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #9 (permalink)  
Antiguo 23/09/2010, 13:57
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Es como dices, hice varias cosas pero todo mezclado por no entender bien del todo el proceso.
Vamos por partes.
Cómo hago para que la imagen que guarda en la raiz del servidor la guarde en una carpeta predeterminada? A donde esta esa especificación para que pueda modificarla, porque de hgecho tengo una carpeta llamada imagenes y es ahi donde me gustaría que fuera a parar!

Gracias por responder!!
  #10 (permalink)  
Antiguo 23/09/2010, 15:17
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Galeria fotos Jquery

Disculpa si tardo, es que estoy armando un Tutorial de AS3. Te recomiendo que primero hagas el formulario para ir trabajando en orden. Si deseas cargar tus fotos a la carpeta como te sugerí, te sugiero que le agregues un diferencial en caso de que vayas a subir fotos con nombres iguales, y vayas a reemplazar una por otra, para ello este código te servirá :

Código PHP:


            
    
if(basename($_FILES['foto']['name']))
        {

            
$aleatorio mt_rand(1,1000);
            
$directorio "imagenes/";
            
$directorio $directorio$aleatorio basename$_FILES['foto']['name']); 

            
move_uploaded_file($_FILES['foto]['tmp_name], $directorio);

    } 
Solo debes crear una carpeta en la raíz de tu servidor, y darle permisos 777, de esa forma podras cargar tus fotos sin problemas. Suerte
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #11 (permalink)  
Antiguo 23/09/2010, 16:14
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Perdón por mi ignorancia, este código que me ponés acá es para crear un nuevo archivo.php o para adicionarlo a alguno de los archivos que ya tengo creados?

Otra duda, cuando hablas de crear una carpeta en la raiz de mi servidor sería dentro de public_html?

Gracias por responder me es de mucha ayuda!!!

Última edición por marilinadg; 23/09/2010 a las 16:27
  #12 (permalink)  
Antiguo 23/09/2010, 22:24
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Galeria fotos Jquery

Hagamos lo que debiste haber hecho de un principio, crea un archivo donde este el formulario para cargar los datos, eso seria algo asi:

Código HTML:
Ver original
  1. <!DOCTYPE html">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7.  
  8. <form action="cargar.php" name="panel" method="post" enctype="multipart/form-data">
  9. <table border="0" cellpadding="5" cellspacing="0" align="center">
  10. <tr>
  11.     <td>Titulo:</td>
  12.     <td><input type="text" name="Titulo" value=""></td>
  13. </tr>
  14. <tr>
  15.     <td>Contenido:</td>
  16.     <td><input type="password" name="Contenido" value=""></td>
  17. </tr>
  18.  
  19. <tr>
  20.     <td height="20px"><input type="file" name="Foto_Principal"></td>
  21. </tr>  
  22.  
  23. <tr>
  24.     <td height="20px"></td>
  25. </tr>  
  26. <tr>
  27.     <td align="center" rowspan="2" colspan="2"><input type="submit" id="button" value="Cargar" /></td>
  28. </tr>
  29. </form>
  30.    
  31.  
  32. </body>
  33. </html>

Crear una base de datos, y agrega la estructura que te había dicho anteriormente. Luego de ello, crear un archivo llamado "cargar.php" donde tendras algo similar a esto:
Código PHP:
<?php

/*Aqui haces la conexion a tu base de datos*/

if(basename($_FILES['Foto']['name'])) 
        { 

            
$aleatorio mt_rand(1,1000); 
            
$directorio "imagenes/"
            
$directorio $directorio$aleatorio basename$_FILES['Foto']['name']);  

            
move_uploaded_file($_FILES['Foto]['tmp_name], $directorio); 

    }  

   
$sql "INSERT INTO nombre_tabla (titulo, contenido, url_foto) VALUES ('".$_POST['Titulo']."','".$_POST['Contenido']."','$directorio')";
   
mysql_query(sql) or die('Error al guardar por: ' mysql_error());

?>
Cuando hayas llegado a este punto, avisa cualquier duda que tengas. Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza

Última edición por JoseAlejandro_Realza; 23/09/2010 a las 22:32
  #13 (permalink)  
Antiguo 24/09/2010, 05:37
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Cita:
Iniciado por marilinadg Ver Mensaje
Perdón por mi ignorancia, este código que me ponés acá es para crear un nuevo archivo.php o para adicionarlo a alguno de los archivos que ya tengo creados?
Puedes usar tu pagina inicial (http://www.vecinomanjarin.com/lotes.php) para el codigo del formulario que te sugiere JoseAlejandro_Realza (html) y en pagina2.php pondrias el segundo codigo que te sugiere...que efectivamente copia la imagen y guarda un registro en una tabla de nombre "nombre_tabla" los datos para poder luego mostrar "dinamicamente" las imagenes que fueron guardadas.

Claro esta que podrias hacer tambien 2 archivos nuevos si quisieras..Pero dijo para no cambiarte mucho de lo que estas haciendo ahora capaz mejor seguir tocando esos 2 archivos que manejas

Cita:
Iniciado por marilinadg Ver Mensaje
Otra duda, cuando hablas de crear una carpeta en la raiz de mi servidor sería dentro de public_html?

Gracias por responder me es de mucha ayuda!!!
Exacto...crea una carpeta ahi mismo llamada imagenes..
  #14 (permalink)  
Antiguo 24/09/2010, 05:47
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Muchas gracias a ambos!! recién me levanto y ya me pongo a trabajar les cuento en un rato como me va, les agradezco mucho el tiempo, de verdad.
  #15 (permalink)  
Antiguo 24/09/2010, 06:02
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Para crear los thumbs (yo lo hice con una altura de 70 y el ancho se calcula de forma que quede proporcional) si quieres cambiar el tamaño modifica la variable $ALTURA para el valor que te sirva....todos los thumbs seran de esa altura (en pixeles) y el ancho se calcula de forma de no deformar la imagen.

En fin...te agrande la letra de la parte mas importante (la que crea el thumb) para darte una orientacion...
Otro detalle no menor es que para esto precisas tener la extension GD de php cargada (es una extension que trae php para el manejo de imagenes) para habilitarla solo debes pedirle a tu hosting que lo haga...(es descomentar una linea en el archivo de configuracion php.ini)...

Bueno...suponiendo que el usuario ya envio el formulario con la imágen....
Asi lo que harias seria crear el thumb y copiarlo a una carpeta de thumbs:


Código:
$ALTURA=70;
       
	  $NAMETHUMB =  $_SERVER["DOCUMENT_ROOT"]."/images/temp/thumbtemp";//Carpeta temporal donde se crean los thumbs

          $id_input_file = "NOMBRE_DEL_CAMPO_FILE_EN_TU_FORMULARIO";

	  // Mime types permitidos
	  $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
	  // Maximo tamaño permitido de fotos (en Bits...creo es 1MB)
	  $MAX_FOTO_TAM=1048576;

	  // Variables de la foto
	  $name = $FILES[$id_input_file]["name"];
	  $type = $FILES[$id_input_file]["type"];
	  $tmp_name = $FILES[$id_input_file]["tmp_name"];
	  $size = $FILES[$id_input_file]["size"];

	  // Verificamos si el archivo es una imagen válida

	if ($size != 0){ // SI QUIZO CAMBIAR LA FOTO

                  //Controlo sea una imagen valida,gif,jpg o png

		  if(!in_array($type, $mimetypes)){
			$any_error = TRUE;
			$msg_error = "El archivo subido no es una im&aacute;gen v&aacute;lida.";
		  }

		  //Controlo que el tamaño de la foto no supere el maximo
		  if ($size > $MAX_FOTO_TAM){
			$any_error = TRUE;
			$msg_error = "La foto subida supera el tama&ntilde;o  m&aacute;ximo permitido (1 Mb).";  

		  }


			if (!$any_error){
				  // Creando el thumbnail

				  switch($type) {

				    case $mimetypes[0]:

				    case $mimetypes[1]:

				      $img = imagecreatefromjpeg($tmp_name);

				      break;

				    case $mimetypes[2]:

				      $img = imagecreatefromgif($tmp_name);

				      break;

				    case $mimetypes[3]:

				      $img = imagecreatefrompng($tmp_name);

				      break;

				  }

				  $datos = getimagesize($tmp_name);

				  $ratio = ($datos[1]/$ALTURA);

				  $ancho = round($datos[0]/$ratio);

				  $thumb = imagecreatetruecolor($ancho, $ALTURA);

				  imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, $ALTURA, $datos[0], $datos[1]);

				  switch($type) {

				    case $mimetypes[0]:

				    case $mimetypes[1]:

				      imagejpeg($thumb, $NAMETHUMB);

					  $extension='.jpeg';

					  break;

				    case $mimetypes[2]:

				      imagegif($thumb, $NAMETHUMB);

					  $extension='.gif';

				      break;

				    case $mimetypes[3]:

				      imagepng($thumb, $NAMETHUMB);

					  $extension='.png';

				      break;

				  }


Ahora veo que en tu web su usan imagenes en thumbs para la galeria que estan en la carpeta images/thumbs y deben tener el mismo nombre que las imagenes originales....
Es asi como funciona esta galeria verdad??..:Es decir sin esta administracion tu lo que haces hoy por hoy es subir imagenes a un lugar y thumbs en la carpeta thumbs...con el mismo nombre y luego colocas los link...y la libreria que estes usando (seguramente alguna de jquery) se encarga del resto de la "magia" ...no...porque veo que los links de los thumbs que te genera son de la forma:

<a href="images/acceso-oeste/705.jpg" class="ad-thumb0"> <img class="image0" longdesc="Excelente parque industrial abierto de 2º categoría,con 100 mts de frente sobre Acceso Oeste y 200 mts de fondo.Cuenta con gas industrial y media tension instalada.Ideal para centro comercial o grandes industrias. El valor es de 140 u$s el m2" title="705 FRACCION INDUSTRIAL DE 20000 m2, UBICADA SOBRE EL ACCESO OESTE KM 39,EN LA LOCALIDAD DE MORENO" src="images/thumbs/705.jpg" style="opacity: 0.7;"> </a>


Por lo que despues del codigo de arriba deberias hacer:


Código:
 $nombre = "IGUAL_NOMBRE_QUE_FOTO_ORIGINAL" . $extension;
 $destino = $_SERVER["DOCUMENT_ROOT"]."/images/thumbs/".$nombre;
 copy($NAMETHUMB,$destino);
Esto lo que hace es mover la imagen thumb a su carpeta correspondiente
  #16 (permalink)  
Antiguo 24/09/2010, 06:07
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Jajajjajajajaj...bueno espero hoy lo puedas tener pronto!!!!..jajajajaj..me fui al carajo agrandando las letras del post anterior....
Encontre esto que esta mas prolijo porque usa lo que te comente pero encapsulado en una funcion....asi solo llamas a la funcion con los parametros y listo....

<?php
function resize($img, $thumb_width, $newfilename)
{

....
}

Aca esta el codigo completito (php.net): http://www.php.net/manual/es/functio...jpeg.php#86605

Y la llamas asi:

echo resize("test4.png", 120, "thumb_test4.png")


Me parece que te va a ser util..pruebala para tu caso.
Saludos.

?>
  #17 (permalink)  
Antiguo 24/09/2010, 07:37
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Ok, les cuento:
José,

1) creé un archivo llamado administrador.php en el que puse el primer código que me pasaste que sería el formulario para subir los datos.

2) creé otro archivo llamado cargar.php con el código que me pasaste en segundo lugar.

a) Solo modifiqué lo siguiente: en administrador.php
Cambié el campo de texto que era un input llamado "contenido" por un textarea (para poder ingresar más texto) y lo llamé Descripción (en lugar de contenido).

b) Ya tenía una carpeta para las imagenes pero se llama images asi que tb cambié ese nombre en el código solo para no tener que modificar todos los demás archivos del sitio que tengo linkeados.

Hasta acá llegué bárbaro, la base de datos ya la tenía creada, se llama vecinoma_admin La tabla se llama [BLotes[/B] y los campos son ID Título y Descripción.

Sandinosaso, si la verdad es que me tuve que alejar del monitor para ver las letras, jajajaj, de todas formas se agradece.

Ahora, a ver si entendí, entro en el link que me pasaste y copio el código, ok.
A dónde lo copio? creo un archivo nuevo o va dentro de alguno de los que venimos trabajando?

Gracias por responder y si!! a ver si hoy la puedo tener lista sería estupendo porfis contesten rápido!!!
  #18 (permalink)  
Antiguo 24/09/2010, 08:40
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

La definicion de la funcion copiala en el cargar.php al inicio de este.

Y luego deberias invocarla asi: (cambia un poquito el codigo de Jose para hacer el thumb y tambien guardarlo)

Código:
if(basename($_FILES['Foto']['name'])) 
        { 

            $aleatorio = mt_rand(1,1000); 

            $directorio = "images/";
            $directorio_thumb = "images/thumbs/";

            $directorio = $directorio. $aleatorio . basename( $_FILES['Foto']['name']);  
            $directorio_thumb = $directorio_thumb. $aleatorio . basename( $_FILES['Foto']['name']);  

            //Muevo la imagen al directorio $directorio
            move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);
            
           //Creo el thumb de la imagen y la copio a $directorio_thumb con alto      //maximo 120 pixeles
            resize($directorio, 120, $directorio_thumb) ;

    }

Bueno es todo.
Cualquier cosa...
  #19 (permalink)  
Antiguo 24/09/2010, 08:55
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Perdón pero no se sio entendí bien, a ver el archivo cargar.php me quedó asi:

<?php
function resize($img, $thumb_width, $newfilename)
{
$max_width=$thumb_width;

//Check if GD extension is loaded
if (!extension_loaded('gd') && !extension_loaded('gd2'))
{
trigger_error("GD is not loaded", E_USER_WARNING);
return false;
}

//Get Image size info
list($width_orig, $height_orig, $image_type) = getimagesize($img);

switch ($image_type)
{
case 1: $im = imagecreatefromgif($img); break;
case 2: $im = imagecreatefromjpeg($img); break;
case 3: $im = imagecreatefrompng($img); break;
default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;
}

/*** calculate the aspect ratio ***/
$aspect_ratio = (float) $height_orig / $width_orig;

/*** calulate the thumbnail width based on the height ***/
$thumb_height = round($thumb_width * $aspect_ratio);


while($thumb_height>$max_width)
{
$thumb_width-=10;
$thumb_height = round($thumb_width * $aspect_ratio);
}

$newImg = imagecreatetruecolor($thumb_width, $thumb_height);

/* Check if this image is PNG or GIF, then set if Transparent*/
if(($image_type == 1) OR ($image_type==3))
{
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
}
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

//Generate the file, and rename it to $newfilename
switch ($image_type)
{
case 1: imagegif($newImg,$newfilename); break;
case 2: imagejpeg($newImg,$newfilename); break;
case 3: imagepng($newImg,$newfilename); break;
default: trigger_error('Failed resize image!', E_USER_WARNING); break;
}

return $newfilename;
}

echo resize("test4.png", 120, "thumb_test4.png")

?>

/*hasta acá lo que copié de lo que me pasaste*/

/*desde acá lo que ya tenía en el archivo cargar.php*/
<?php

/*Aqui haces la conexion a tu base de datos*/

if(vecinoma_admin($_FILES['Foto']['name']))
{

$aleatorio = mt_rand(1,1000);
$directorio = "images/";
$directorio = $directorio. $aleatorio . vecinoma_admin( $_FILES['Foto']['name']);

move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);

}

$sql = "INSERT INTO nombre_tabla (titulo, descripcion, url_foto) VALUES ('".$_POST['Titulo']."','".$_POST['Descripcion']."','$directorio')";
mysql_query(sql) or die('Error al guardar por: ' . mysql_error());

?>

DEonde de paso comento que donde decía basename lo cambié por el nombre de mi base de datos, eso está bien no?
Bueno ahora, si lo anterior está bien, el código que mencionás para llamar la función dónde tendría que ponerlo?

Gracias por la paciencia, podré terminarlo para hoy??? veremos, veremos...

Última edición por marilinadg; 24/09/2010 a las 09:01
  #20 (permalink)  
Antiguo 24/09/2010, 09:22
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

NO!!!!...basename es una funcion de php que devuelve el nombre de un archivo sin la base (ejemplo basename("carpeta/fotos/index.php") devuelve index.php...
No se suponia que lo cambiaras por el nombre de tu base...

Ahora bien...

Asi te debe quedar el archivo que mencionas:


Código:
<?php
function resize($img, $thumb_width, $newfilename)
{
$max_width=$thumb_width;

//Check if GD extension is loaded
if (!extension_loaded('gd') && !extension_loaded('gd2'))
{
trigger_error("GD is not loaded", E_USER_WARNING);
return false;
}

//Get Image size info
list($width_orig, $height_orig, $image_type) = getimagesize($img);

switch ($image_type)
{
case 1: $im = imagecreatefromgif($img); break;
case 2: $im = imagecreatefromjpeg($img); break;
case 3: $im = imagecreatefrompng($img); break;
default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;
}

/*** calculate the aspect ratio ***/
$aspect_ratio = (float) $height_orig / $width_orig;

/*** calulate the thumbnail width based on the height ***/
$thumb_height = round($thumb_width * $aspect_ratio);


while($thumb_height>$max_width)
{
$thumb_width-=10;
$thumb_height = round($thumb_width * $aspect_ratio);
}

$newImg = imagecreatetruecolor($thumb_width, $thumb_height);

/* Check if this image is PNG or GIF, then set if Transparent*/
if(($image_type == 1) OR ($image_type==3))
{
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
}
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

//Generate the file, and rename it to $newfilename
switch ($image_type)
{
case 1: imagegif($newImg,$newfilename); break;
case 2: imagejpeg($newImg,$newfilename); break;
case 3: imagepng($newImg,$newfilename); break;
default: trigger_error('Failed resize image!', E_USER_WARNING); break;
}

return $newfilename;
}


if(basename($_FILES['Foto']['name'])) 
        { 

            $aleatorio = mt_rand(1,1000); 

            $directorio = "images/";
            $directorio_thumb = "images/thumbs/";

            $directorio = $directorio. $aleatorio . basename( $_FILES['Foto']['name']);  
            $directorio_thumb = $directorio_thumb. $aleatorio . basename( $_FILES['Foto']['name']);  

            //Muevo la imagen al directorio $directorio
            move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);
            
           //Creo el thumb de la imagen y la copio a $directorio_thumb con alto      //maximo 120 pixeles
            resize($directorio, 120, $directorio_thumb) ;


    }  

$host              = 'localhost';
$usuario          = 'root';
$password      = '';
$basededatos ='vecinoma_admin';

   $conexion = @mysql_connect($host,$usuario,$password) or die ("Error al   conectarse al host $host con el usuario $usuario");

mysql_select_db($basededatos,$conexion) or die ("Error al seleccionar la base 
$basededatos.");

   $sql = "INSERT INTO Lotes (IDTitulo, Descripcion, url_foto) VALUES ('".$_POST['Titulo']."','".$_POST['Descripcion']."','$directorio')";
   mysql_query($sql,$conexion) or die('Error al guardar por: ' . mysql_error());



?>


PERO DEBES AGREGAR EL CAMPO url_foto en tu tabla Lotes (de paso...porque usas esta y no te creas una tabla con los 3 campos que recomendo jose para identificar asi las imagenes, llamale Imagenes por ejemplo)....si no no te va a andar el codigo de jose...
Ademas ahi faltaba la conexion a la base (con un usuario y un password que uses habitualmente para conectarte) y al servidor....que no se en que servidor lo tienes...ahi te puse localhost que es el local...esos datos tu los tienes que saber.

Aparte asegurate que los campos de la tabla Lotes se llamen IDTitulo, Descripcion y url_foto....EXACTAMENTE ASI!!!!!! respetando mayusculas y minusculas...guion bajo..etc...
  #21 (permalink)  
Antiguo 24/09/2010, 10:07
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Uuuups! Sorry, ya arreglé lo de basename... que desastre...

Ok ya tengo todo como mencionás cambié los datos de host, usuario, contraseña y agregué el campo url_foto a la tabla, me quedó asi:

id
Titulo
Descripcion
url_foto


De paso donde dice "tipo" en la base de datos qué es lo que va en el campo url_foto?

ahora? subo todo por ftp asi lo podés ver?
  #22 (permalink)  
Antiguo 24/09/2010, 10:22
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Galeria fotos Jquery

Hola Marilina te envie un mensaje privado.

Saludos.
  #23 (permalink)  
Antiguo 24/09/2010, 10:26
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

ginitofl, vi tu mensaje y te lo agradezco pero la verdad es que llegué hasta acá y no quiero empezar todo de nuevo, tengo la galería insertada en el sitio...
Creo que ya estamos en la recta final, espero poder terminarlo pronto, gracias de todas maneras!
  #24 (permalink)  
Antiguo 24/09/2010, 11:10
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

En tipo podes ponerle varchar(100) para guardar ese campo..
Y de paso estaba pensando que como lo planteo Jose te guardas en el campo url_foto de tu tabla el url completo de donde esta la foto (ejemplo: '/images/foto1.jpg') para luego mostrarla....estaria bueno tambien guardar el url del thumb (por mas que sabemos que va a la carpeta thumb capaz el dia de mañana lo quieres cambiar).

Entonces te pediria que agregues tambien un campo url_thumb en la tabla del mismo tipo que el campo url_foto (varchar(100)..
Y que cambies en tu codigo esta linea:
Código:
$sql = "INSERT INTO Lotes (IDTitulo, Descripcion, url_foto) VALUES ('".$_POST['Titulo']."','".$_POST['Descripcion']."','$directorio')";
Por esta:
Código:
$sql = "INSERT INTO Lotes (Titulo, Descripcion, url_foto, url_thumb) VALUES ('".$_POST['Titulo']."','".$_POST['Descripcion']."','$directorio','$directorio_thumb')";

Otra cosa el campo id de tu tabla selecciona donde veas la opcion PRIMARY KEY y AUTO_INCREMENT...El auto increment lo que va a hacer es ir asignando valores enteros de a uno a ese campo (el id) en tu tabla de manera de identificar cada registro. Y primary key le dice que el id de cada imagen es único.
Usas PhpMyAdmin para administrar la base ?...es muy intuitivo hacer esto con esa herramienta.

Creo que es todo..podrias subirlo a tu hosting a ver que tal si no falta nada.
Saludos.
  #25 (permalink)  
Antiguo 24/09/2010, 11:20
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Ojo que veo que en el formulario le pusiste al textarea nombre 'descripcion' y no 'Descripcion'...
mira: <textarea style="width: 100%;" id="descripcion" rows="6" name="descripcion"></textarea>
y el boton de subir archivos le pusiste: 'Foto_Principal' y no 'Foto'....
mira: <input type="file" name="Foto_Principal">

Ten cuidado con esto porque tu pagina cargar.php espera esos nombres que vengan y no los que tu pusiste...El codigo que te puso Jose fue a modo de ejemplo creo por eso no chequeo su correctitud...

Lo mas facil es cambiar el administrador.php que tiene el formulario ... en esos dos lugares que te marque deberias poner:

<textarea style="width: 100%;" id="descripcion" rows="6" name="Descripcion"></textarea>

y

<input type="file" name="Foto">

Saludos
  #26 (permalink)  
Antiguo 24/09/2010, 11:32
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Ok, ya está, lo único que no me quedó claro es lo que decis acá:

"te guardas en el campo url_foto de tu tabla el url completo de donde esta la foto (ejemplo: '/images/foto1.jpg') para luego mostrarla"

A dónde tengo que guardar esa ruta en el archivo cargar.php?en qué línea... perdón.

Por lo demás ya subi todo al ftp, fijate a ver como lo ves..
Gracias!
  #27 (permalink)  
Antiguo 24/09/2010, 11:38
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

No era un comentario nomas...que el codigo lo hace...guarda en la tabla el url de la foto..o sea donde se guardo...y te sugeri crees un campo en la tabla con igual proposito para el thumb...
Lo hiciste??..
Me esta tirando error de sintaxis el cargar.php...
Parse error: syntax error, unexpected T_STRING, expecting ']' in /home/vecinoma/public_html/cargar.php on line 74

Podrias poner todo el codigo aqui?
Gracias.
Saludos
  #28 (permalink)  
Antiguo 24/09/2010, 11:50
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Galeria fotos Jquery

Acá te pego el código del cargar.php, ya hice los últimos cambios que me dijiste.


<?php
function resize($img, $thumb_width, $newfilename)
{
$max_width=$thumb_width;

//Check if GD extension is loaded
if (!extension_loaded('gd') && !extension_loaded('gd2'))
{
trigger_error("GD is not loaded", E_USER_WARNING);
return false;
}

//Get Image size info
list($width_orig, $height_orig, $image_type) = getimagesize($img);

switch ($image_type)
{
case 1: $im = imagecreatefromgif($img); break;
case 2: $im = imagecreatefromjpeg($img); break;
case 3: $im = imagecreatefrompng($img); break;
default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;
}

/*** calculate the aspect ratio ***/
$aspect_ratio = (float) $height_orig / $width_orig;

/*** calulate the thumbnail width based on the height ***/
$thumb_height = round($thumb_width * $aspect_ratio);


while($thumb_height>$max_width)
{
$thumb_width-=10;
$thumb_height = round($thumb_width * $aspect_ratio);
}

$newImg = imagecreatetruecolor($thumb_width, $thumb_height);

/* Check if this image is PNG or GIF, then set if Transparent*/
if(($image_type == 1) OR ($image_type==3))
{
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
}
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

//Generate the file, and rename it to $newfilename
switch ($image_type)
{
case 1: imagegif($newImg,$newfilename); break;
case 2: imagejpeg($newImg,$newfilename); break;
case 3: imagepng($newImg,$newfilename); break;
default: trigger_error('Failed resize image!', E_USER_WARNING); break;
}

return $newfilename;
}


if(basename($_FILES['Foto']['name']))
{

$aleatorio = mt_rand(1,1000);

$directorio = "images/";
$directorio_thumb = "images/thumbs/";

$directorio = $directorio. $aleatorio . basename( $_FILES['Foto']['name']);
$directorio_thumb = $directorio_thumb. $aleatorio . basename( $_FILES['Foto']['name']);

//Muevo la imagen al directorio $directorio
move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);

//Creo el thumb de la imagen y la copio a $directorio_thumb con alto //maximo 120 pixeles
resize($directorio, 120, $directorio_thumb) ;


}

$host = 'localhost';
$usuario = 'vecinoma_fer2010';
$password = 'manjarin2010';
$basededatos ='vecinoma_admin';

$conexion = @mysql_connect('localhost', 'vecinoma_fer2010', 'manjarin2010') or die ("Error al conectarse al host $host con el usuario $usuario");

mysql_select_db('vecinoma_admin',$conexion) or die ("Error al seleccionar la base
$basededatos.");

$sql = "INSERT INTO Lotes (Titulo, Descripcion, url_foto, url_thumb) VALUES ('".$_POST['Titulo']."','".$_POST['Descripcion']."','$directorio','$directorio_thumb')";

mysql_query($sql,$conexion) or die('Error al guardar por: ' . mysql_error());





/*Aqui haces la conexion a tu base de datos*/

if(basename($_FILES['Foto']['name']))
{

$aleatorio = mt_rand(1,1000);
$directorio = "images/";
$directorio = $directorio. $aleatorio . basename( $_FILES['Foto']['name']);

move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);

}


?>

Ya subí los archivos modificados al ftp, pero aún me da error.
La línea 74 es esta:

move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);
  #29 (permalink)  
Antiguo 24/09/2010, 11:59
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Faltan 2 comillas
cambia:
move_uploaded_file($_FILES['Foto]['tmp_name], $directorio);
por:
move_uploaded_file($_FILES['Foto']['tmp_name'], $directorio);

Igual aplica lo mismo en la linea 109
  #30 (permalink)  
Antiguo 24/09/2010, 12:08
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

A mi me anda barbaro me crea el thumbs y me mueve la imagen lo mas bien....no probe el insert en la base...

Tengo mi proyecto en /htdocs/prueba/
Cree dos carpetas images y thumbs en ese lugar y TUVE QUE CAMBIAR LA LINEAS 67 y 68 por:

$directorio = $_SERVER["DOCUMENT_ROOT"]."/prueba/images/";
$directorio_thumb = $_SERVER["DOCUMENT_ROOT"]."/prueba/thumbs/";

Cambia esas lineas segun aplique a tu caso...y estate segura de que existen las carpetas mencionadas...sino te va a fallar como a mi en local...
Saludos.

(Editado):En tu caso como veo que tus archivos estan en la raiz del hosting y no dentro de ninguna carpeta prueba ni nada por el estilo seria:
$directorio = $_SERVER["DOCUMENT_ROOT"]."/images/";
$directorio_thumb = $_SERVER["DOCUMENT_ROOT"]."/thumbs/";

OTRA VEZ TE RECUERDO ESTATE SEGURA de tener LAS CARPETAS images y thumbs CREADAS

Última edición por sandinosaso; 24/09/2010 a las 12:19

Etiquetas: fotos, galeria, jquery
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 22:21.