Pregunta: | 65218 - ERROR HEADER( "CONTENT-TYPE: IMAGE/JPEG") |
Autor: | spidy spidy |
hola tengo un error con la siguiente liena header("Content-type: image/jpeg") he leido en multitud de foro cosas sobre esto pero ninguna funciona, explico mi caso yo quiero visualizar unas fotos de la base de datos. en el archivo principal tengo el siguiente codigo.
<?php inlcude("funciones.php"); print listar('[email protected]'); ?> y el archivo de funciones.php contiene estas funciones. <?php function listar($usuario){ $conexion=Conectarse(); $qry="select docs.*, CASE docs.tipo WHEN 'image/png' then 'image' WHEN 'image/jpg' then 'image' WHEN 'image/gif' then 'image' WHEN 'image/jpeg' then 'image' ELSE 'file' END as display from fotos AS docs where usuario='$usuario'"; //EJECUTAMOS LA CONSULTA $res=mysql_query($qry) or die("Query: $qry ".mysql_error()); //RECORREMOS LA CONSULTA while ($obj=mysql_fetch_object($res)) { //SI EL TIPO DE DOCUMENTO ES UMAGEN LA MOSTRAMOS SI NO SOLO HACEMOS EL LINK switch ($obj->display){ case "image": $img=getFile($usuario, $obj->id_documento); echo "<div> <img src='$img' alt='$obj->titulo' /> </a> </div><hr />"; break; /*case "file": echo "<div> <a href='getfile.php?id_documento={$obj->id_documento}'>$obj->titulo</a> </div><hr />"; break; */ } } } function getFile($usuario,$idDocumento){ $conexion=Conectarse(); $qry="Select * from fotos where id_documento=$idDocumento and usuario='$usuario'"; $res=mysql_query($qry) or die(mysql_error()." qry::$qry"); $obj=mysql_fetch_object($res); //OBTENEMOS EL TIPO MIME DEL ARCHIVO ASI EL NAVEGADOR SABRA DE QUE SE TRATA header("Content-type: {$obj->tipo}"); //OBTENEMOS EL NOMBRE DEL ARCHIVO POR SI LO QUE SE REQUIERE ES DESCARGARLO //header('Content-Disposition: attachment; filename="'.$obj->nombre_archivo.'"'); //Y PO ULTIMO SIMPLEMENTE IMPRIMIMOS EL CONTENIDO DEL ARCHIVO return $obj->contenido; } ?> |
Respuesta: | xve |
Hola, el problema esta en que no puedes modificar el header de una misma pagina varias veces, y menos modificarlo una vez ha mostrado datos en la pantalla con otro header...
Para ello, la solucion pasa por llamar a otra pagina en el tag <img> Algo asi: <img src="getFile.php?idDoc=$idDocumento"> En el archivo getFile.php, haces lo mismo que tienes en la funcion getFile. Aqui tienes un buen ejemplo: http://www.lawebdelprogramador.com/codigo/PHP/70-Guardar_y_mostrar_una_imagen_de_una_base_de_datos_MySQL.html |