Comunidad de diseño web y desarrollo en internet online

cargador de imagen mysql y php

Citar            
MensajeEscrito el 23 Ene 2011 12:13 am
Hola a todos, consegui un script aqui muy chevere el script, me ha ayudado mucho pero tngo el siguiente problema en el código que se encarga de subir la fotografia; modifique un pokito el script para trabajar con mysql, de tal forma que se me almacene en un campo tipo 'varchar' la ruta de la imagen, ya que en mi caso estoy haciendo un site para promover la adopcion de animalitos de la calle, entonces habia creado 3 carpetas dentro de mi directorio 'images' para organizar de mejor forma lo q seria cada tipo de animal (perrito,gatito y burrito)... pero entonces se me ocurrio que seria mejor y mas facil para trabajar con la imagen en lugar de almacenarlas en 3 directorios distintos, crear uno solo y cambiar la cadena de caracteres aleatoria, cosa que en vez de guardarme la imagen con ese nombre extraño reemplaze cualkier nombre q traiga con el nombre de la categoria a la que pertenece la imagen y un numero

escribió:

ej: perrito_1.jpg ; perrito_2.jpg... excetera...


pero hasta ahora no he conseguido hacerlo... como puedo yo eliminar la cadena aleatoria y remplazar el nombre que traiga la foto con algo asi como $animalito_1,2,3,4...??

asi es mi codigo para almacenar en 3 carpetas segun la categoria de la foto y usando aun la cadena aleatoria..

Código PHP :


<?php 
require_once('../includes/connection_mysql.php'); 
?>
<?php
$categoria = $_POST['categoria'];
$file = $_POST['file'];

if($_POST){
// Creamos la cadena aletoria 
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad = "";
for($i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="500000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño 

switch($categoria)//en mi archivo imagen.php, coloque 3 radio buttons, para que el usuario seleccione que tipo de animal es, el switch se encarga de tomar el destino que haya seleccionado el usuario....
      {
         case 1:
         $destino = "../images/burritos";
         break;
         case 2:
         $destino = "../images/gatitos";
         break;
         case 3:
         $destino = "../images/perritos";
         break;
      }
      
   $sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
   $tipo=$sep[1]; // Optenemos el tipo de imagen que es
   if($tipo == "gif" || $tipo == "jpeg" || $tipo == "jpg" || $tipo == "png"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
      move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/'.$cad.'.'.$tipo);  // Subimos el archivo
         
                $ruta = $destino.'/'.$cad.'.'.$tipo;//armo la ruta exacta de la imagen para almacenarla en el campo tipo varchar
         $query = mysqli_query($conexion, "INSERT INTO asodepa.fotos (ruta, categoria, fecha) 
         VALUES('$ruta','$categoria',now())") or die (mysqli_error($conexion));//aqui ya lo que hago es la insercion de la informacion en la base de datos...

      echo 'Fotografía Cargada Exitosamente. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';
}
else echo 'El Tipo de Archivo no es de los permitidos. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';// Si no es el tipo permitido lo desimos
}
else echo 'El Archivo Supera el Peso Máximo. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';// Si supera el tamaño de permitido lo desimos
}
?> 
<?php
exit();
?>




este codigo me funciona chevere pero es dificil emplear las fotografias de esta forma.... por fa!!! ayudenme!!!

P.D:

como podria hacer para agregarle a este código que me genere una miniatura?? es decir q me almacene en el directorio algo asi como perrito_1.jpg y mini_perrito_1.jpg??

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 23 Ene 2011 02:06 am
bueno... agrego un nuevo comentario porque no se puede editar o no se como.... hice una modificacion al código y ya logre almacenar las fotos tipo perrito_1.jpg gatito_1.jpg .... etc.

solo quiciera que me ayudaran a realizar la parte de generar miniaturas por fa alli si que no se ni como entrarle XD

asi esta mi codigo hasta ahora

Código PHP :


<?php 
require_once('../includes/connection_mysql.php'); 
?>
<?php
$categoria = $_POST['categoria'];
$file = $_POST['file'];

if($_POST){
   //desde aqui modifico nombres de las fotos segun la categoria a la que pertenecen
   $cad = "";
   $cate = "";
      switch($categoria)
      {
         case 1:
         $cate .= "burrito_";
         break;
         case 2:
         $cate .= "gatito_";
         break;
         case 3:
         $cate .= "perrito_";
         break;
      }
      //realizo una consulta a la base de datos para verificar lo que seria la cantidad de fotografias por categoria y poder asignar el numero de la secuencia ej: perrito_1, perrito_2 y  asi sucesivamente empleando un ciclo for.
      $query = "SELECT * FROM fotos WHERE categoria='$categoria'";
      $row = mysqli_query($conexion,$query) or die (mysqli_error());
      $num_rows = mysqli_num_rows($row);
      
         for($i; $i <= $num_rows; $i++)
         {
            $cad = $cate.$i;
         }
      
   //fin del ciclo y consulta...
   
$tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="500000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño 
   $destino = '../images/' ; // Carpeta donde se guardata
   $sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
   $tipo=$sep[1]; // Optenemos el tipo de imagen que es
   if($tipo == "gif" || $tipo == "jpeg" || $tipo == "jpg" || $tipo == "png"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
      move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/'.$cad.'.'.$tipo);  // Subimos el archivo
         $cont++;
         $ruta = $cad.'.'.$tipo; //nombre completo de la imagen para almacenarlo en la base de datos
         $query = mysqli_query($conexion, "INSERT INTO asodepa.fotos (ruta, categoria, fecha) 
         VALUES('$ruta','$categoria',now())") or die (mysqli_error($conexion));

      echo 'Fotografía Cargada Exitosamente. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';
}
else echo 'El Tipo de Archivo no es de los permitidos. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';// Si no es el tipo permitido lo desimos
}
else echo 'El Archivo Supera el Peso Máximo. <br /><br /><a href="imagen.php">haz click aqui</a>
         ';// Si supera el tamaño de permitido lo desimos
}
?> 
<?php
exit();
?>
</div>
</body>
</html>

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 24 Ene 2011 02:53 am
para crear thumbs bscua classes que se adapten a lo que necesitas bsuca por php thumbnail class

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2011 07:51 pm
gracias por tu respuesta pero la verdad apenas estoy aprendiendo php y nunca he trabajado con clases... no se como se usan

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 27 Ene 2011 04:10 am
Hola al parecer todo bien con lo que quieres, solo te faltaría mover la imagen que cargas ejemplo.

Código PHP :

if(is_uploaded_file($_FILES['photo']['tmp_name'])){
         $nombre_temporal = $_FILES["photo"]["tmp_name"];

                   move_uploaded_file($nombre_temporal, "directorio_ruta/".$nombre_que_le_des);

}



si ves te falta move_uploaded_file, con sus dos parámetros, espero te sirva :D

Por mizarf

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Ene 2011 05:33 pm
hola mizarf !
gracias por tu interes pero si te fijas el move_upload_file ya lo tengo en uso... sino no me estuviese andando el script XD la verdad es q el asi me funciona perfecto, mi problema es que no se como generar miniaturas y necesito q se me almacene en el servidor, la foto original, una miniatura escalada de la original y una q sea de 50x50 sin importar si conserva la escala... si puedes ayudarme?

buscando aqui en la web consegui un tip publicado por elecash o elanet (no recuerdo bn el nombre del forero) q habla de una clase para generar miniaturas, pero por mas que intento usarla no me sale... no se ya que hacer :'(

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 28 Ene 2011 04:52 am
Hola de nuevo te pido disculpas, Me perdí un poco en tu consulta. :D

Pero volviendo al tema lo que necesitas es alguna librería en php para generar miniaturas. Hay muchas pero te paso este link en el que puedes encontrar una con ejemplos varios, espero te sirva.

http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php

y aquí bajas la última versión

http://sourceforge.net/projects/phpthumb/files/phpThumb()/

Por mizarf

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Ene 2011 10:34 pm
hola mizarf, gracias nuevamente ya estoy descargando la libreria q me indicas, pero veo la pagina q me indicaste con el demo y la verdad no entiendo como funciona, la miniaturizacion necesito que se de al momento en que se almacena la foto original, y q en la bd se guarde el nombre de ambas miniaturas., de nuevo gracias y si puedes explicarme el funcionamiento de la libreria te lo agradeceria mucho

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.