Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 15 de 15

Tema: Subir y Mostrar imagenes con php y mysql :)

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 09
    Ubicación
    Cumaná - Venezuela
    Mensajes
    56
    Poder de Reputación
    16

    Subir y Mostrar imagenes con php y mysql :)

    Buenas tardes al foro, eh estado buscando y leyendo y octube este codigo, pero como no estoy muy familiarizado con eso de subidas de imagenes me pregunto comoinsertar en una divicion la imagen, lo podria hacer con un while y q me devuelva las fotos encontrada mediante array??¿? y al ser montada la resolucion max sea de 300*300px aqui esta el codigo todo me funciona a la perfe pero como le agrego eso q pido..^^

    Guardar.php

    Código PHP:
    <?php
     
     
    if (is_uploaded_file($_FILES['archivo']['tmp_name']) === TRUE)
     
    {
     
    $imagen mysql_escape_string(join(@file($_FILES['archivo']['tmp_name']))); 
     
    $nombre mysql_escape_string($_POST['nombre']);
     
    $tipo $_FILES['archivo']['type'];
     
     
    @
    mysql_connect('localhost','root','0000') or die('No se ha podido conectar el servidor de datos');
     
    @
    mysql_select_db('imagenes') or die('La base de datos es inexistente');
     
        if (isset(
    $nombre))
     
        {
     
            if (@
    mysql_result(@mysql_query("SELECT nombre FROM subir_imagenes WHERE nombre='$nombre'"),'nombre')) die('El nombre de la imagen esta actualmente en uso');
     
     }
    @
    mysql_query("INSERT INTO subir_imagenes(nombre,tipo,imagen) VALUES('$nombre','$tipo','$imagen')");
     
    $id = @mysql_insert_id();
     
    echo 
    '

    <center><p>Puede verla pulsando <a href="imagen.php?id=' 
    $id '">aqu&iacute;</a></p></center>

    '
    ;
     
    exit;
     
    }
     
    else
     
    {
     
    echo 
    '
    <form enctype="multipart/form-data" method="post" action="' 
    $_SERVER[SCRIPT_NAME] . '">
    Nombre:&nbsp;<input type="text" name="nombre" maxlength="256" />&nbsp;(Opcional)
    <br />
    Archivo:&nbsp; <input type="file" name="archivo" />
    <br />
    <input type="submit" />
    </form>
    '
    ;
     
    }

    ?>
    Imagen.php
    Código PHP:
    <?php
     

    @mysql_connect('localhost','root','0000') or die('No se puede conectar con el servidor mysql'); 
     
    @
    mysql_select_db('imagenes') or die('No se puede seleccionar la base de datos especificada'); 
     
    $datos = ($_GET['id']) ? 'id=' mysql_escape_string($_GET['id']) : "nombre='" mysql_escape_string($_GET['nombre']) . "'";
     
    $resultado = @mysql_query("SELECT imagen,tipo FROM subir_imagenes WHERE " $datos);
     
    $imagen = @mysql_fetch_assoc($resultado) or die('Imagen inexistente');

    header("Content-type: $imagen[tipo]");


    print 
    $imagen ["imagen"];

     
    ?>
    Última edición por sepiro; 19/04/2011 a las 21:41

  2. #2
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,657
    Poder de Reputación
    23
    Lo siento pero no entiendo que quieres decir con esto, explicate mejor:

    comoinsertar en una divicion la imagen, lo podria hacer con un while y q me devuelva las fotos encontrada mediante array??¿? y al ser montada la resolucion max sea de 300*300px
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  3. #3
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 09
    Ubicación
    Cumaná - Venezuela
    Mensajes
    56
    Poder de Reputación
    16
    ya el codigo esta listo ya puedo insertar y me devuelve la foto, pero como hago para q me la muestra con una dimension mas pequeña por ejemplo, q el usuario la envie y la resolucion original sea 600*700px y al seleccionarla de la base de datos para mostrarla en la web en dicha division sea de 100*100px..

  4. #4
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,657
    Poder de Reputación
    23
    Aunque la URL de la foto la obtengas de la BBDD, supongo que para mostrar las fotos usaras:

    <img src="...." etc
    Pues añade a esa etiqueta una anchura y altura fijas:

    Ejemplo: <img src="tufoto.jpg" alt="nombre" width="300px" height="300px"/>

    Un saludo
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    19
    Aunque no es para mi gusto una buena forma de almacenar imagenes, pero hay de gustos a gustos, para mostrar la imagen en el tamaño que quieres basta con ponerle dimenciones a la misma: <img src="$imagen" width="100" height="100" border="0"> y asi la imagen se mostrara de 100x100 px aunque su tamaño sea mayor, aunque esto no modifica la imagen original y en realidar simplemente la ajusta al tamaño deceado, si deceas tratar las imagenes y redimencionarlas deberas usar las librerias GD de php para tratar imagenes y crear miniaturas.

  6. #6
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 09
    Ubicación
    Cumaná - Venezuela
    Mensajes
    56
    Poder de Reputación
    16
    hola serverdns, por lo q veo tu estilo es subirla directamente al computador luego llamarlas mediante una sentencia en php... como soy nuevo en esto encontre este codigo en la red, pero tengo una duda, quiero q cada vez q suba una imagen se almacene en la misma divicion por ejemplo , echo("<span class='fotos'><img src=\"http://".$_SERVER['HTTP_HOST']."/fotos/imagenes_pequena.php?ruta=$ruta_completa\"></span>");, pero al subir varias se cree otra divicion al lado y asi ps, un ejemplo claro de esto seria el sistema de fotos thumbs q tiene mercado libre al uno subir una foto se debe de almacenar en una base de datos, tabla, y al pedirla la llame mediante una ID, creo q seria asi la solucion ya que cuando subo una imagen me la muestra bn, pero cuando subo otra me reemplaza la q subi anteriormente aqui les dejo el codigo para q me ayuden.
    UPLOAD.php
    Código 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>
    <
    script type="text/javascript">
    var 
    numero 0//Esta es una variable de control para mantener nombres
                //diferentes de cada campo creado dinamicamente.
    evento = function (evt) { //esta funcion nos devuelve el tipo de evento disparado
       
    return (!evt) ? event evt;
    }
     
    //Aqui se hace lamagia esta funcion crea dinamicamente los nuevos campos file
    addCampo = function () { 
    //Creamos un nuevo div para que contenga el nuevo campo
       
    nDiv document.createElement('div');
    //con esto se establece la clase de la div
       
    nDiv.className 'archivo';
    //este es el id de la div, aqui la utilidad de la variable numero
    //nos permite darle un id unico
       
    nDiv.id 'file' + (++numero);
    //creamos el input para el formulario:
       
    nCampo document.createElement('input');
    //le damos un nombre, es importante que lo nombren como vector, pues todos los campos
    //compartiran el nombre en un arreglo, asi es mas facil procesar posteriormente con php
       
    nCampo.name 'archivos[]';
    //Establecemos el tipo de campo
       
    nCampo.type 'file';
    //Ahora creamos un link para poder eliminar un campo que ya no deseemos
       
    document.createElement('a');
    //El link debe tener el mismo nombre de la div padre, para efectos de localizarla y eliminarla
       
    a.name nDiv.id;
    //Este link no debe ir a ningun lado
       
    a.href '#';
    //Establecemos que dispare esta funcion en click
       
    a.onclick elimCamp;
    //Con esto ponemos el texto del link
       
    a.innerHTML 'Eliminar';
    //Bien es el momento de integrar lo que hemos creado al documento,
    //primero usamos la función appendChild para adicionar el campo file nuevo
       
    nDiv.appendChild(nCampo);
    //Adicionamos el Link
       
    nDiv.appendChild(a);
    //Ahora si recuerdan, en el html hay una div cuyo id es 'adjuntos', bien
    //con esta función obtenemos una referencia a ella para usar de nuevo appendChild
    //y adicionar la div que hemos creado, la cual contiene el campo file con su link de eliminación:
       
    container document.getElementById('adjuntos');
       
    container.appendChild(nDiv);
    }
    //con esta función eliminamos el campo cuyo link de eliminación sea presionado
    elimCamp = function (evt){
       
    evt evento(evt);
       
    nCampo rObj(evt);
       
    div document.getElementById(nCampo.name);
       
    div.parentNode.removeChild(div);
    }
    //con esta función recuperamos una instancia del objeto que disparo el evento
    rObj = function (evt) { 
       return 
    evt.srcElement ?  evt.srcElement evt.target;
    }
    </script>
     

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento sin t&iacute;tulo</title>
    </head>
     
    <body>
     <form name="formu" id="formu" action="imagenes.php" method="post" enctype="multipart/form-data">
         <dl>            
       <dt><label>Archivos a Subir:</label></dt>
               <dd><div id="adjuntos">
             <input type="file" name="archivos[]" /><br />
       </div></dd>
       <dt><a href="#" onClick="addCampo()">Subir otro archivo</a></dt>      
       <dd><input type="submit" value="Enviar" id="envia" name="envia" /></dd>
         </dl>
    </form>
     
    </body>
    </html> 
    redimencionar

    Código PHP:

    <?php
    /*### ESTE SCRIPT ES PARA IMAGENES JPG, GIF, PNG###*/
    $ruta_imagen"$ruta_completa";
    //este es el acho maximo el alto es proporcional para no distorcionar la imagen
    $medida "350";
    //aqui vamos a obtener los datos de la imagen en el caso de no estar buena la imagen por alguna razon dara este mensaje 
    switch ($tamanio[2])
          {
          case 
    1$imagen= @imagecreatefromgif($ruta_imagen) or die ("<center><br /><br /><strong>la imagen esta da&ntilde;ada o <br />tiene un formato no valido</strong></center>");
           break;
          case 
    2$imagen= @imagecreatefromjpeg($ruta_imagen) or die ("<center><br /><br /><strong>la imagen esta da&ntilde;ada o <br />tiene un formato no valido</strong></center>");
           break;
          case 
    3$imagen= @imagecreatefrompng($ruta_imagen) or die ("<center><br /><br /><strong>la imagen esta da&ntilde;ada o <br />tiene un formato no valido</strong></center>");
          }
     
    //obtenemos el tamaño de la imagen
       
    $ancho = @imagesx ($imagen);
       
    $alto = @imagesy ($imagen);
       
    //aqui compruebo si el ancho de la imagen es mayor que el establesido como limite de ser menor no se ejecuta el escript de redimencionar de ser mayor se procede a ajustarla a la medida
       
    if ($ancho $medida){ 
       if(
    $ancho>=$alto)
       {
          
    $nuevo_alto round($alto $medida $ancho,0);   
          
    $nuevo_ancho=$medida;
       }
       else
       {
          
    $nuevo_ancho round($ancho $medida $alto,0);
          
    $nuevo_alto =$medida;   
       }
       
    //aqui se guarda en la bbdd la ruta y los datos que necesitemos
       
    $ruta_ruta_1 "$ruta_completa";
    $conexion_ruta = @mysql_connect("localhost","root","48202d") or die("No se pudo realizar la conexion con el servidor.");
    @
    mysql_select_db("albunes",$conexion_ruta) or die("No se puede seleccionar BD");
     
    $consulta_insertar "INSERT INTO dir_imagenes (id, ruta_normal, username, ancho, alto, albun) VALUES ('', '$ruta_ruta_1', '$usuario', '$nuevo_ancho', '$nuevo_alto', '".$album."')";
    mysql_query($consulta_insertar,$conexion_ruta ) or die("No se pudo insertar los datos en la base de datos.");
       
     
       
    $imagen_nueva = @imagecreatetruecolor($nuevo_ancho$nuevo_alto);
       
       @
    imagecopyresampled($imagen_nueva$imagen0000$nuevo_ancho$nuevo_alto$ancho$alto);
       @
    imagejpeg($imagen_nueva"$ruta_imagen");
       @
    imagedestroy($imagen_nueva);
       @
    imagedestroy($imagen);
     
    //esto se ejecuta si la imagen es menor que el ancho estrablecido
    }else{ 
     

    $imagen_nueva = @imagecreatetruecolor($ancho$alto);
       
    @
    imagecopyresampled($imagen_nueva$imagen0000$ancho$alto$ancho$alto);
    @
    imagejpeg($imagen_nueva"$ruta_imagen"90);
    @
    imagedestroy($imagen_nueva);
    @
    imagedestroy($imagen);
     
    //aqui se guarda en la bbdd la ruta y los datos que necesitemos
    $ruta_ruta_1 "$ruta_completa";
    $conexion_ruta = @mysql_connect("localhost","root","48202d") or die("No se pudo realizar la conexion con el servidor.");
    @
    mysql_select_db("albunes",$conexion_ruta) or die("No se puede seleccionar BD");
     
    $consulta_insertar "INSERT INTO dir_imagenes (id, ruta_normal, username, ancho, alto, albun ) VALUES ('', '$ruta_ruta_1', '$usuario', '$ancho', '$alto', '".$album."' )";
    @
    mysql_query($consulta_insertar,$conexion_ruta ) or die("No se pudo insertar los datos en la base de datos.");
    }
    ?>
    IMAGENES.PHP
    Código PHP:
    <?php 
       
    //Preguntamos si nuetro arreglo 'archivos' fue definido
             
    if (isset ($HTTP_POST_FILES["archivos"])) {
             
    //de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
             //obtenemos la cantidad de elementos que tiene el arreglo archivos
             
    $tot count($HTTP_POST_FILES["archivos"]["name"]);
             
    //este for recorre el arreglo
             
    for ($i 0$i $tot$i++){
             
    /*con el indice $i, poemos obtener la propiedad que desemos de cada archivo
             para trabajar con este datos del arhivo*/
             //aqui el mensaje de erro
      
    $mensaje_error="La extensión o el tamaño de los archivos no es correcta. $tipo_archivo <br><br><table><tr><td><li>Se permiten archivos .gif, .png o .jpg 1<br><li>se permiten archivos de 2 Mb máximo.</td></tr></table>";
     
    $tmp_name $HTTP_POST_FILES["archivos"]["tmp_name"][$i];
     
    $tamano_archivo $HTTP_POST_FILES["archivos"]['size'][$i];
     
    $name $HTTP_POST_FILES["archivos"]["name"][$i];
     
    //aqui le damos un nombre nuevo al archivo            
     
    $nombre rand (1000000000000,99999999999999);
     
    //aqui le marcamos la extencion asi sea gif o png ya que al terminar el script seran jpg 
     
    $tipo ".JPG";
     
    //la carpeta donde guardara la imagen
     
    $carpeta "pequena";
     
    //el nombre nuevo completo de la imagen
     
    $nombreconpleto=$nombre.$tipo;
     
    //la ruta donde se guardara el archivo
     
    $ruta_completa $carpeta.$nombreconpleto;
       
    /*  esto para determinar si realmente es un archivo jpg, gif o png ya que pueden enviar algun archivo con alguna de estas extenciones y si no se comprueba la funcion getimagesize podrian subirlo */
       
    $tamanio getimagesize($tmp_name);
       if (
    $tamanio[2]==true){
       switch (
    $tamanio[2])
          {
          
    /*############################# AQUI COMIENZA EL GIF #######################################*/    
          
    case 1:  //aqui comprobamos si el archivo llego a los temporales si no damos el mensaje de error 
          
    if (is_uploaded_file($tmp_name))
          { 
    //aqui comprobamos que el archivo no sea mayor de 2Mb aunque al redimencionar el archivo no sera mayor de 60 kb 
            //de ser mayor mandamos el mensaje de error
          
    if ($tamano_archivo 2048000)
               { 
    //comoprobamos si el archivo se copio en la carpeta especificada de haberse copiado se ejecuta el rimencionar.php
                 // en el cual puedes hacer que en el proceso se guarde la url en la bbdd
                 //de no haberce copiado en la carpeta especifica mandamos el mensaje de error 
                 
    if (copy($tmp_name,"$ruta_completa")){ 
                 include(
    'redimencionar.php');
                 }else{
                     print 
    "Error en transferencia de archivo.";
                     exit();
                   }
                 
               }else{
               
    //este es el mensaje de error del if ($tamano_archivo < 2048000)
               
    echo $mensaje_error
            }
        
        }else{ 
        
    //este es el mensaje de error del if (is_uploaded_file($tmp_name))
        
    echo $mensaje_error;}
    /*#################################### AQUI CIERRA EL GIF ##########################################*/    
          
    break;
    /*#################################### AQUI COMIENZA EL JPG ##########################################*/       
          
    case 2
          
    //aqui comprobamos si el archivo llego a los temporales si no damos el mensaje de error 
          
    if (is_uploaded_file($tmp_name))
          { 
    //aqui comprobamos que el archivo no sea mayor de 2Mb aunque al redimencionar el archivo no sera mayor de 60 kb 
            //de ser mayor mandamos el mensaje de error
          
    if ($tamano_archivo 2048000)
               { 
    //comoprobamos si el archivo se copio en la carpeta especificada de haberse copiado se ejecuta el rimencionar.php
                 // en el cual puedes hacer que en el proceso se guarde la url en la bbdd
                 //de no haberce copiado en la carpeta especifica mandamos el mensaje de error 
                 
    if (copy($tmp_name,"$ruta_completa")){ 
                 include(
    'redimencionar.php');
                 }else{
                     print 
    "Error en transferencia de archivo.";
                     exit();
                   }
                 
               }else{
               
    //este es el mensaje de error del if ($tamano_archivo < 2048000)
               
    echo $mensaje_error
            }
        
        }else{ 
        
    //este es el mensaje de error del if (is_uploaded_file($tmp_name))
        
    echo $mensaje_error;}
        
    /*#################################### AQUI CIERRA EL JPG ##########################################*/        
          
    break;
          
    /*#################################### AQUI COMIENZA EL JPG ##########################################*/    
           
    case 3
             
    //aqui comprobamos si el archivo llego a los temporales si no damos el mensaje de error 
          
    if (is_uploaded_file($tmp_name))
          { 
    //aqui comprobamos que el archivo no sea mayor de 2Mb aunque al redimencionar el archivo no sera mayor de 60 kb 
            //de ser mayor mandamos el mensaje de error
          
    if ($tamano_archivo 2048000)
               { 
    //comoprobamos si el archivo se copio en la carpeta especificada de haberse copiado se ejecuta el rimencionar.php
                 // en el cual puedes hacer que en el proceso se guarde la url en la bbdd
                 //de no haberce copiado en la carpeta especifica mandamos el mensaje de error 
                 
    if (copy($tmp_name,"$ruta_completa")){ 
                 include(
    'redimencionar.php');
                 }else{
                     print 
    "Error en transferencia de archivo.";
                     exit();
                   }
                 
               }else{
               
    //este es el mensaje de error del if ($tamano_archivo < 2048000)
               
    echo $mensaje_error
            }
        
        }else{ 
        
    //este es el mensaje de error del if (is_uploaded_file($tmp_name))
        
    echo $mensaje_error;}
    /*#################################### AQUI CIERRA EL JPG ##########################################*/             
           
    break;
           
    /*#################### todos los demas es para cualquier otro tipo de archivos  y de el mensaje de error indicando que no es un archivo no valido ####################*/    
          
    case 4
          echo 
    $mensaje_error;
           break;
          case 
    5
          echo 
    $mensaje_error;
           break;
          case 
    6:
          echo 
    $mensaje_error;
           break;
          case 
    7
          echo 
    $mensaje_error;
           break;
          case 
    8
          echo 
    $mensaje_error;
           break;
          case 
    9
         echo 
    $mensaje_error;
          } 
         
        }
        echo(
    "<b>Archivo </b> $key ");
                echo(
    "<br />");
                echo(
    "<b>imagen redimencionada normal:</b> \n");
                echo(
    "<br />"); 
                
    //aqui cambia la url por la tuya    
                
    echo("<a href=\"http://".$_SERVER['HTTP_HOST']."/clasificados/$ruta_completa\">http://".$_SERVER['HTTP_HOST']."/clasificados/$ruta_completa</a>");
                echo(
    "<br />"); 
                echo(
    "<b>imagen enThumbs:</b> \n");
                echo(
    "<br />"); 
                echo(
    "<a href=\"http://".$_SERVER['HTTP_HOST']."/clasificados/imagenes_pequena.php?ruta=$ruta_completa\">http://".$_SERVER['HTTP_HOST']."/clasificados/imagenes_pequena.php?ruta=$ruta_completa</a>");
                echo(
    "<br />"); 
                echo(
    "<br />"); 
                echo(
    "<br />");        
     
           
    sleep(1);
                }
          
          
          } 
          
          
               
    ?>
    IMAGENES PEQUENAS.php
    Código PHP:
    <?php

    header
    ("Content-type: image/jpeg"); 
    $archivo$_GET['ruta'];
    //aqui obtengo los datos de la imagen para hacer una comprobacion para ver el tamaño de la imagen ya que si es menor del tamaño permitido no ejecuto el script
    $imagen= @imagecreatefromjpeg($archivo) or die ("<center><br /><br /><strong>la imagen esta da&ntilde;ada o <br />tiene un formato no valido</strong></center>");
    //aqui saco el ancho 
    $ancho = @imagesx ($imagen);
     
    // este es el tamaño marcado la imagen sera pefectamente cuadrada sin deformarla
    $tamano 100;
    //aqui es donde verificamos si la imagen es mayor de serlo ejecutamos si no mostramos la imagen con el tamaño por defecto que deberia ser menor a 100 px 
    if($ancho $tamano){
    list(
    $ancho$alto) = @getimagesize($archivo);
    if(
    $ancho>$alto)
    {
        
    $new_alto $tamano;
        
    $new_ancho = ($ancho/$alto)*$new_alto;
     
        
    $x = ($ancho-$alto)/2;
        
    $y 0;
    }
    else {
        
    $new_ancho $tamano;
        
    $new_alto = ($alto/$ancho)*$new_ancho;
     
        
    $y = ($alto-$ancho)/2;
        
    $x 0;
    }
     
    $origen = @imagecreatefromjpeg($archivo);
    $temp = @imagecreatetruecolor($tamano$tamano);
    @
    imagecopyresampled($temp$origen00$x$y$new_ancho$new_alto$ancho$alto);
    @
    imagejpeg($temp);
    @
    imagedestroy($temp);
    @
    imagedestroy($origen);
    }else
    {
    @
    imagejpeg($imagen);
    @
    imagedestroy($imagen);
    }
     
    ?>

  7. #7
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    19
    bueno revise el script y hay varios errores o esat inconcluso:

    Código PHP:
     $name $HTTP_POST_FILES["archivos"]["name"][$i];
     
    //aqui le damos un nombre nuevo al archivo            
     
    $nombre rand (1000000000000,99999999999999);  /* mala idea para elegir nuevos nombres, esta funcion tiende ha repetir los numeros generados constantemente, usa mejor mt_rand()  o yo usaria mejor una conbinacion como $nombre=time()."_".md5($HTTP_POST_FILES["archivos"]["name"][$i]); */
     //aqui le marcamos la extencion asi sea gif o png ya que al terminar el script seran jpg 
     
    $tipo ".JPG";  // Yo pereriria usar minusculas en todos los nombres
     //la carpeta donde guardara la imagen
     
    $carpeta "pequena";  // Generalmente los nombres de carpetas terminan en /
     //el nombre nuevo completo de la imagen
     
    $nombreconpleto=$nombre.$tipo;
     
    //la ruta donde se guardara el archivo
     
    $ruta_completa $carpeta.$nombreconpleto// al no terminar en / la variable carpeta se une al nombre quedaria algo como: carpeta123456789.JPG 
    Al generar numeros aleatorios para el nombre con la funcion rand(), quizas funcione la primera vez, la segunda vez lo mas probable es que adquiera el mismo valor, sin tomar en cuenta que nunca destrulles el valor generado con unset($nombre); despues de usarlo.

    No hay ninguna etapa de validacion para ver si la imagen con el nombre asignado ya existe en el servidor, aunque generes nombres que quizas nunca se repetiran, no esta demas validar que la imagen no exista en el servidor.

    Ademas de que hay mucho codigo repetido que podrias optimizar, cuando guardas la imagen en la base de datos, si todas las imagenes van ha estar en la misma carpeta, seria mucho mejor si solo guardas el nombre de la imagen y no toda la ruta completa.

  8. #8
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 09
    Ubicación
    Cumaná - Venezuela
    Mensajes
    56
    Poder de Reputación
    16
    tienes razon, la funcion rand(), funciona una sola ves, y al subir otra imagen reemplaza la anterior :/, me puedes ayudar a optimizar y mejorar este codigo.

  9. #9
    Esto empieza a ser un vicio... Habitante Avatar de cesar_ed
    Fecha de Ingreso
    11 feb, 10
    Mensajes
    559
    Poder de Reputación
    17
    Pues hace tiempo cree un script de subida de imagenes, no se si te puede servir o ayudar a generar mas opciones de exito

    http://www.comocreartuweb.com/consul...gen-a-bd/page2

    Un saludo y suerte.
    Es facil programar "Solo interesate en aprender"

  10. #10
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 09
    Ubicación
    Cumaná - Venezuela
    Mensajes
    56
    Poder de Reputación
    16
    probare tu codigo si me funciona te aviso :)

  11. #11
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    19
    si podria ayudarte, mas no hacerlo, podrias corregir esos errores que te he dicho y probar, aunque aun no entendo que es lo que pretendes hacer con eso, un hosting de imagenes o almacen, o simplemente una galeria de fotos.

  12. #12
    Recien Llegado! Habitante
    Fecha de Ingreso
    25 mar, 12
    Mensajes
    15
    Poder de Reputación
    12

    No puedo subir imagenes jpge al servidor

    Tengo un problema al momento de subir las fotos jpge, suben los gif y pgn pero no los jpg, se ejecuta todo bien solo tengo problemas al momento de guardarlas en el servidor:

    Este el codigo php:
    $id_fotousuario=$_SESSION["id_usuario"];
    $filename = trim($_FILES['archivo']['name']);
    $filename = substr($filename, -50);
    $archivo_nombre= $_FILES["archivo"]["name"];
    $archivo_peso= $_FILES["archivo"]["size"];
    $archivo_temporal= $_FILES["archivo"]["tmp_name"];
    $extimagen=pathinfo($archivo_nombre);
    $ext=array("jpg", "gif", "png", "JPEG", "jpeg", "GIF", "JPG", "pjpeg", "PJPEG");
    $urlnueva="images/" . $archivo_nombre;
    if (is_uploaded_file($archivo_temporal)){
    if (array_search($extimagen["extension"], $ext)){
    copy($archivo_temporal, $urlnueva);
    $ssql="SELECT * FROM fotos WHERE nombrefoto =$filename and id_usuario =$id_fotousuario";
    }else{
    echo "Extensión mala";
    }
    }else{
    echo "No se envió nada";
    }


    Este es el formulario de envio:

    <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" enctype="multipart/form-data">
    <div class="campoform">
    <input type="file" name="archivo">
    <input type="submit" value="Enviar">
    </div>

    </form>

    El otro problema que tengo es que cuando suben las imagenes PNG o GIF no se almacena el nombre en la base de datos. Les agradeceria mucho me ayuden ya que me quede truncado en esto y no puedo continuar mi diseño.

    Gracias de antemano por toda la ayuda.

  13. #13
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    256
    Poder de Reputación
    14
    Hola bienvenido a cctw , pasate por las normas del foro para evitar revivir temas viejos.

    Puedes intentar buscando temas ya resueltos o aportes como:

    http://www.comocreartuweb.com/consul...sion-Alpha-1.0
    y existen muchos mas ahora bien:

    $ssql="SELECT * FROM fotos WHERE nombrefoto =$filename and id_usuario =$id_fotousuario";

    No entiendo que quieres hacer con eso , ¿Tal vez verificar que no se haya subido ya el archivo? .. aun se ve muy pobre tu codigo deberias optimizarlo mas ....

    Bueno si encuentras un buen tema y lo puedes resolver ... y si no pues ya te ayudariamos

    Saludos!
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  14. #14
    Recien Llegado! Habitante
    Fecha de Ingreso
    25 mar, 12
    Mensajes
    15
    Poder de Reputación
    12
    Muchas gracias SurKaiser, verificare el enlace que me envias.

    Lo que estoy tratando de hacer es guardar solamente el nombre de las imagenes en una BD y que las imagenes sean subidas al servidor pero que esa imagen tenga un usuario para poder distinguir a quien corresponde. En cuanto a al codigo pobre te agradeceria mucho me recomiendes que cosas mas incluir.

    Muchas gracias por todo nuevamente

  15. #15
    Recien Llegado! Habitante
    Fecha de Ingreso
    25 mar, 12
    Mensajes
    15
    Poder de Reputación
    12
    Surkaiser, muchas gracias por tu ayuda, ya solucione el problema. sin embargo tengo otro problema al momento de buscar la imagen. La busqueda esta bien, lo probé en phpmyadmin con el SQL y me da el resultado correctamente, el problema ocurre en mysql_query(), te envio el codigo para que me des una mano por favor.

    Lo que estoy haciendo es que tengo una imagen pequeña y al darle clic sobre la imagen se habra otra ventana con una imagen mas grande.


    <?php
    session_start();
    $raiz= "./";
    $foto=$_GET["imagen"];
    $id_fotousuario=$_SESSION["id_fotousuario"];
    $busca="SELECT * FROM fotos WHERE nombrefoto ='" .$foto. "' and id_usuario ='" . $id_fotousuario . "'";
    $registro=mysql_query($busca);
    if (mysql_num_rows($registro)){
    //no logra entra aca, me sale el mensaje de: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D: \ wamp \ www \ inforurre \ imagenfoto.php en la línea 8
    $fila=mysql_fetch_array($rs_f);
    echo '<img src="' . $raiz . 'images/' . $fila["nombrefoto"] . '" width="600" heigth="600">';
    }
    ?>

    te agradecedia mucho me ayudes a descifrar el error, ya que no puedo mostar la imagen seleccionada..

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •