Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2013, 03:58
gio_vela10
 
Fecha de Ingreso: agosto-2011
Ubicación: por ahi
Mensajes: 28
Antigüedad: 12 años, 9 meses
Puntos: 0
Información Problemas al descargar archivo mediante PHP

Hola amigos,

tengo un problema con los header al descargar archivos desde la BD, estoy guardando los archivos en una campo BLOB(tabla 'files'), tengo este codigo para mostrar los archivo en una lista:
Código HTML:
<?php
require('conec.php');
?>
<!DOCTYPE html>
<head>
        <title>aaa</title>       
</head>
<body>
	<div id="header">
		<h2>External Files</h2>
	</div>
	<!-- end header div -->	
	
	<!-- start wrap div -->	
	<div id="wrap">		
	    <!-- start PHP code -->
	    <?php	    		    	
	    	$cons = mysql_query("SELECT record_created, name FROM kommunikation_process WHERE email='[email protected]' AND token='xxxxxxxxx' AND used_token='1'") or die(mysql_error());	
			$record = "";
			$nombre = "";			
			while($fila = mysql_fetch_array($cons))
			{
				$date = date_create($fila['record_created']);	
				$record = date_format($date, 'g:ia \o\n l jS F Y');
				$nombre = $fila['name'];			
			}
			function tamano_archivo($peso , $decimales = 2 ) {
			$clase = array(" Bytes", " KB", " MB", " GB", " TB"); 
			return round($peso/pow(1024,($i = floor(log($peso, 1024)))),$decimales ).$clase[$i];
			}		
	    ?> 
		  <!-- title and description -->	
		<p>Here you can download the file that has been uploaded on xxx for you on: <?php echo $record?>.</p>
		<p>from <b><?php echo $nombre?></b>.</p>
		<?php
		$qry = "SELECT id,file_name, file_type,file_size FROM files where ref_kommunikation_process=42";
			$res = mysql_query($qry) or die(mysql_error());
			$lista = '<ol>'; //generamos la lista
		    while($data = mysql_fetch_assoc($res)){
		        $lista .= '<li>
		        <a href="descargar.php?id='.$data['id'].'">Download </a><span>the file </span><b>'.$data['file_name'].'</b><span>('.tamano_archivo($data['file_size']).')</span></li>';
		    }
		    $lista .= '</ol>';
		    echo $lista;
			mysql_close(); // Cerrar conexion
		?>		
	</div>	
</body>
</html> 
y el codigo para descargar es:
Código PHP:
<?php
require_once 'conec.php';

       if(isset(
$_GET['id']) && !empty($_GET['id'])){
           
$id $_GET['id'];
           
$qry "SELECT file_name,file_type,file_original FROM files WHERE id=$id";
        
$res mysql_query($qry) or die(mysql_error());
        
$data mysql_fetch_assoc($res);
        
header("Content-Type: ".$data['file_type']);
        
header("Content-Disposition: attachment; filename=".$data['file_name']);
        
print_r($data['file_original']); 
    }       
    
mysql_close(); // Cerrar conexions
?>
me gustaria saber si ven algún error en mi codigo, ya que siempre que intento descargar cualquier archivo me dice que es corrupto, ya he tratado con varias conbinaciones de header pero siegue igual=/.

espero me puedan ayudar con esto, gracias de antemano.

Saludos!

Última edición por gio_vela10; 23/05/2013 a las 04:17