Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/12/2007, 07:27
Avatar de bluetorch
bluetorch
 
Fecha de Ingreso: diciembre-2007
Mensajes: 26
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: guardar imagen y mostrarla en mysql

Este es un script que uso yo para el tratado de imagenes.. lo que hago yo es subir "la foto" a la base de datos y tambien subirla a una carpeta en el servidor para que al querer mostrarla utilizo las imagenes que tengo en el servidor, no se si se entiende..
utilizo el "nombre" de la foto que guarde en la base de datos y cuando la encierro en <img> utilizo la ruta de la foto que subi al server. y tambien creo que es mejor hacer un mysql_fetch_assoc para manejarme mejor que con las rows...

Código PHP:
if (isset($_POST['texto'])){
    if (
is_uploaded_file($_FILES['file']['tmp_name'])){
        
$nombre_nuevo $_FILES['file']['name'];
        if(
move_uploaded_file($_FILES['file']['tmp_name'], "imagenes/".$nombre_nuevo)){        
        
//if(copy($_FILES['file']['tmp_name'], "imagenes/".$nombre_nuevo)){
        //if (1 == 0){
    
      
$idir "imagenes/";   // Path To Images Directory
      
$tdir "thumbs/";   // Path To Thumbnails Directory
      
$twidth "450";   // Maximum Width For Thumbnail Images
      
$theight "350";   // Maximum Height For Thumbnail Images     
        
      
$simg imagecreatefromjpeg("$idir" $nombre_nuevo);   // Make A New Temporary Image To Create The Thumbanil From
      
$currwidth imagesx($simg);   // Current Image Width
      
$currheight imagesy($simg);   // Current Image Height
      
if ($currheight $currwidth
      {   
// If Height Is Greater Than Width
         
$zoom $twidth $currheight;   // Length Ratio For Width
         
$newheight $theight;   // Height Is Equal To Max Height
         
$newwidth $currwidth $zoom;   // Creates The New Width
      
} else {    // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height)
        
$zoom $twidth $currwidth;   // Length Ratio For Height
        
$newwidth $twidth;   // Width Is Equal To Max Width
        
$newheight $currheight $zoom;   // Creates The New Height
      
}
      
$thumb imagecreatetruecolor($newwidth$newheight);   // Make New Image For Thumbnail
      
imagetruecolortopalette($simgtrue256);   // Create New Color Pallete
      
$palsize ImageColorsTotal($simg);
      for (
$i 0$i $palsize$i++) {   // Counting Colors In The Image
       
$colors ImageColorsForIndex($simg$i);   // Number Of Colors Used
       
ImageColorAllocate($thumb$colors['red'], $colors['green'], $colors['blue']);   // Tell The Server What Colors This Image Will Use
      
}
      
imagecopyresized($thumb$simg0000$newwidth$newheight$currwidth$currheight);   // Copy Resized Image To The New Image (So We Can Save It)
      
imagejpeg($thumb"$tdir" $nombre_nuevo);   // Saving The Image
      
imagedestroy($simg);   // Destroying The Temporary Image
      
imagedestroy($thumb);   // Destroying The Other Temporary Image
      
print 'Image thumbnail created successfully.';   // Resize successful
   
        
            
echo "subido y movido<br><br>";
            
            
$linkmysql_connect('SERVER''USERNAME''PASSWORD');
            
$post_fecha=date("j-m-Y H:i");
            
mysql_select_db('tabla'$link);
            
$sql"INSERT INTO subida VALUES ('$id', '$nombre_nuevo', '$titulo', '".$_POST['texto']."', '$post_fecha')";
            
mysql_query($sql$link);
            
$fotomysql_query("SELECT id FROM campo WHERE id!='$id'");
            while (
$imagenes mysql_fetch_assoc($foto))
                {
                    
$id_foto $imagenes['id'];
                }
                        
            echo 
"<img src=\"imagenes/$nombre_nuevo\" alt=\"esta es la imagen que subiste\" />";
    
    
        }
        else{
            echo 
"subido y no movido";
        }
    } else {
        echo 
"no subido";
    } 
//////////////// PARTE DE MOSTRAR /////////////////

Código PHP:
$Linkmysql_connect('SERVER''USERNAME''PASSWORD');
    
    
mysql_select_db('tabla'$Link);
    
    
$fotomysql_query("SELECT * FROM campo WHERE texto!='$texto' ORDER BY id desc");
            
    echo 
"<br><br>
    <center>
    <table width=250 border=0 class=td>"
;
////// esto es lo que te decia que hagas el mysq_fetch_assoc /////////        
    
while ($imagenes mysql_fetch_assoc($foto)) 
////// esto es lo que te decia que hagas el mysq_fetch_assoc /////////
{
    
$id_foto $imagenes['id'];
        
    echo 
'
        <tr>
            <td class=td>
                <a href=post.php?id='
.$imagenes['id'].'>';
/////// aca esta lo que te decia que lo mostraba desde las fotos que subi al server al mismo 
tiempo que las cargo en la base de datos (src=imagenes/'.$imagenes['file'].'////////
echo '<img src=imagenes/'.$imagenes['file'].' width="100" height="100" border="1"></a>'
/////// aca esta lo que te decia que lo mostraba desde las fotos que subi al server al mismo 
tiempo que las cargo en la base de datos (src=imagenes/'.$imagenes['file'].'////////
echo            '</td>
            <td class=td>
                <center><font face=verdana><b>'
.$imagenes['titulo'].'</b></font></center>
            </td>
        </tr>'
;
                
}

    echo 
"</table></center>";
    
        
mysql_close($Link); 
Espero que te sirva de algo.. lee el código y cualquier cosa que no entiendas avisame si???

saludos!!

Última edición por bluetorch; 11/12/2007 a las 07:32 Razón: no se cambiaban los colores y estaba corrido todo