Ayuda con Imagen

Hola Experto, mi duda es la siguiente:
Cuando guardo una imagen en mi BD, lo hace en binario pero al leerla no me la muestra completa ¿A qué se deberá eso? Y he puesto varias imágenes y algunas si las pone completas y otras a la mitad o menos, he visto también las dimensiones de estas y solo las de 500x500 las despliega bien en la ventana pero las que pasan de esas dimensiones me las deja a la mitad.
Acá te dejo mi código por si tienes tiempo de chequear que estoy haciendo mal pues nunca he programado en PHP ni JavaScript.
--------------------------------------------------------------------------------------
$folio_venta = $_POST['folio'];
     $articulos = $_POST['folio'];
     $tipo_cobro = $_POST['tipo_cobro'];
     $sucursal = $_POST['sucursal'];
     $fecha_pago = $_POST['date'];
     $monto = $_POST['monto'];
     $comprobante = $_POST['folio'];
     $foto_name= $_FILES['foto']['name'];
     $foto_size= $_FILES['foto']['size'];
     $foto_type=  $_FILES['foto']['type'];
     $foto_temporal= $_FILES['foto']['tmp_name'];
     $lim_tamano= $_POST['lim_tamano'];
     $foto_titulo= $_POST['titulo'];
     $foto_id= $_POST['folio'];
     # Limitamos los formatos de imagen admitidos a: png, jpg y gif
     if ($foto_type=="image/x-png" OR $foto_type=="image/png")
     {
      $extension="image/png";
     }
     if ($foto_type=="image/pjpeg" OR $foto_type=="image/jpeg")
     { 
      $extension="image/jpeg";
     }
     if ($foto_type=="image/gif" OR $foto_type=="image/gif")
     {
      $extension="image/gif";
     }
     /*Condicionamos el INSERT para que la foto tenga nombre,
un tamaño distinto de cero y menor que el límite
       y que la variable extensión no sea null*/
     if ($foto_name != "" AND $foto_size != 0 AND $foto_titulo !='' AND $foto_size<=$lim_tamano AND $extension !='')
     {
     /*Reconversion de la imagen para meter en la tabla
       abrimos el fichero temporal en modo
       lectura "r" y binaria "b"*/
      $f1= fopen($foto_temporal,"rb");
     # Leemos el fichero completo limitando la lectura al tamaño del fichero
      $foto_reconvertida = fread($f1, $foto_size);
     /* Anteponemos "\" a las comillas que pudiera contener el fichero
        para evitar que sean interpretadas como final de cadena.*/
      $foto_reconvertida=addslashes($foto_reconvertida);
     /* Abrimos la base de datos y escribimos las intrucciones para Insertar y
        en el campo BLOB insertaremos la foto_reconvertida.*/
      $base="ventasml";
      $tabla="fotos";
      $conexion=mysql_connect ("localhost","root","");
      mysql_select_db ($base, $conexion);
      $meter="INSERT INTO ".$tabla;
      $meter .=" (num_ident, imagen, nombre, tamano, formato) ";
      $meter .=" VALUES('$foto_id','$foto_reconvertida','$foto_titulo',";
      $meter .= "$foto_size, '$extension')";
      $conexion = mysql_connect("localhost","root","");
      mysql_select_db("ventasml",$conexion);
      $sql_query = "INSERT INTO datos_deposito values('$folio_venta','$articulos','$tipo_cobro','$sucursal','$fecha_pago','$monto','$comprobante')";
      mysql_query($sql_query,$conexion);
         if (@mysql_query($meter,$conexion))
      {
       echo "
<script>alert('Datos Guardados.')</script>
";
       if($_POST['titulo'])
       {
        echo "
<hr>
<br>";
        echo "
<div align='right'>De clic <a href='http://localhost/Dinacom/Listo.php'>aqui</a> para continuar o Vea la imagen que nos ha enviado.</div>
";
       }
      }
      else
      {
      }
     }
     else
     {echo "
<script>alert('No Guardamos tus datos, revisa que la imagen sea JPG, GIF o PNG. Y el tamaño maximo de 1 MB.')</script>
";}
    }
   ?>
    <FORM action="g_fotos.php" method="get" target="ventana1" onsubmit="window.open('', 'ventana1', 'scrollbar=yes,resizable=yes,left=50,statusbar=no')">
     <?php
      echo"<INPUT type='hidden' name='id' value=" . $foto_id . ">";
     ?>
     <INPUT type="submit" name="ver" value="Ver Imagen"><br />
    </FORM>
----------------------------------------------------------------------------------------------------
En el Form ACTION="g_fotos.php" tengo el siguiente codigo:
---------------------------------------------------------------------------------------------
<?
if ($_GET['id'])
{
$base="ventasml";
$tabla="fotos";
$conexion=mysql_connect ("localhost","root","");
mysql_select_db ($base, $conexion);
    $sacar = "SELECT * FROM fotos WHERE num_ident = " . $_GET['id'];
    $resultado =...
1

1 respuesta

Respuesta
1
¿Qué tal si me indicas como quieres desplegar la imagen si en tamaño original o escalada ajustándola ha determinado tamaño? Por la noche te ayudare con esto, tal vez requieras almacenar también el tamaño del ancho y alto de la imagen en la tabla.
Hola, pues yo también trabajo por las noches pues estoy en el servicio de la escuela en las tardes y en las mañanas tengo otro trabajo :P, y pues con lo de la imagen pues quisiera que la mostrara en tamaño original pues solo tiene que mostrar un boucher pero en este caso no se en que tamaño lo vallan a mandar por eso quiero que sea en imagen completa acá te dejo una muestra de como hace lo del error que tengo:

Si pudieras ayudarme te lo agradecería.
Saludos..!
L.I. Juan Carmona.
La unica explicacion logica que le encuentro es que la imagen pese mas de 64KB, de ser asi tienes dos opciones:
1) Asegurar que las imágenes tengan menor peso de 64KB antes de subirlas
2) Cambiar el tipo de dato BLOB por MEDIUMBLOB o superior
Si con eso no funciona la verdad no le encuentro otra explicación, pero lo resolveremos...
Gracias por apoyarme en esto je je, sé que estaba relativamente fácil pero como te decía, yo nunca en mi vida había programado en php je je pero era aprender o dejar de comer, en verdad mil gracias, y si algún día llegas a necesitar algo mandame un correo a [email protected] y con gusto te ayudare como tu en esta ocasión.
Un Saludo y Feliz Navidad y Año 2011...!
L.I. Juan Carmona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas