Foros del Web » Programando para Internet » PHP »

guardar imagen y mostrarla en mysql

Estas en el tema de guardar imagen y mostrarla en mysql en el foro de PHP en Foros del Web. estoy haciendo un script para guardar fotos en mi base de datos y despues mostrarlas. la guardo bien y despues cuando voy a mostrarla me ...
  #1 (permalink)  
Antiguo 11/12/2007, 06:54
 
Fecha de Ingreso: junio-2005
Mensajes: 80
Antigüedad: 18 años, 10 meses
Puntos: 0
guardar imagen y mostrarla en mysql

estoy haciendo un script para guardar fotos en mi base de datos y despues mostrarlas. la guardo bien y despues cuando voy a mostrarla me sale el archivo lleno de codigos y no me sale la imagen, cual es el error?

os dejo el codigo:

codigo guardar imagen:

Código PHP:
$archivo=$_FILES['archivo']['tmp_name'];
$imagen_tamano $_FILES['archivo']['size'];
$imagen_nombre $_FILES['archivo']['name'];
$imagen_tipo $_FILES['archivo']['type'];
$imagen_titulo=$_POST['imagen_titulo'];


$consult="select max(id) from bestpractices";
$result=mysql_query($consult);
$row=mysql_fetch_row($result);
$id=$row[0]+1;
 
if (!
$archivo)
{
    die(
"Error, el archivo no existe: "mysql_error());
}
else
{
    
$fp=fopen($archivo,"r")or die("No se puede abrir el archivo.\n");
    
$imagen_contenido=fread($fp,$imagen_tamano);
    
$imagen_contenido=addslashes($imagen_contenido);
    
fclose($fp);
    
    
$registro="INSERT INTO bestpractices VALUES ('$id','$f1','$f2','$f3','$f4','$f5','$f6','$f7','$f8','$f9','$imagen_contenido','$imagen_titulo','$imagen_tipo','$imagen_nombre')"


Codigo mostrar imagen:

Código PHP:

$c_name
=$_POST['nombre_bestpractice'];

$consult="SELECT * FROM BESTPRACTICES WHERE name='$c_name'";
$result=mysql_query($consult);
$nfilas=mysql_num_rows($result);

while (
$row=mysql_fetch_array($result)){
        echo 
"<table>";
        echo 
"<tr>";
        echo 
"<td> Name: </td>""<td>".$row[1]."</td>";
        echo 
"</tr>";
        echo 
"<tr>";
        echo 
"<td> Institution: </td>"."<td>".$row[2]."</td>";
        echo 
"</tr>";
        echo 
"<tr>";
        echo 
"<td> Imagen: </td><td>".$row[12]."<br>";
        echo 
"<img scr='";
        
header("Content-Type:".$row[12]);
        echo 
$row[10];
        echo 
"' alt='Imagen best practices'> </td>";
        echo 
"</tr>";
        echo 
"</table>";

  #2 (permalink)  
Antiguo 11/12/2007, 07:27
Avatar de bluetorch  
Fecha de Ingreso: diciembre-2007
Mensajes: 26
Antigüedad: 16 años, 4 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
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 (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:00.