Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2015, 06:27
alonsomaxx
 
Fecha de Ingreso: julio-2012
Mensajes: 81
Antigüedad: 11 años, 9 meses
Puntos: 3
Error descarga archivos

Hola amigos del foro.
Tengo un par de problemas a la hora de descargar archivos.
El primero es que si utilizo header("Content-Length: ".$size); a la hora de descargar el archivo desde localhost me da el siguiente error al abrirlo: "El archivo tiene un formato desconocido o esta dañado."

y el segundo problema es que cuando intento descargar el archivo desde un servidor al pinchar en el enlace de descarga me aparece una ventana con simbolos extraños y no me descarga el archivo.

Mi código es el siguiente:
Código PHP:
        if (!isset($_GET['archi']) || empty($_GET['archi'])) {
            exit();
        }
        
        
$root "download/";
        
$file basename($_GET['archi']);
        
$path $root $file.".zip";      
        
$type '';

        if (
is_file($path)) {
            
$size filesize($path);
            
            if (
function_exists('mime_content_type')) {
                
$type mime_content_type($path);
                
            } else if (
function_exists('finfo_file')) {
                
$info finfo_open(FILEINFO_MIME);
                
$type finfo_file($info$path);
                
finfo_close($info);
            }
            if (
$type == '') {
                
$type "application/force-download";
            }
            
            
// Definir headers            
            
header("Content-Type: $type");
            
header("Content-Disposition: attachment; filename=$file.zip");
            
header("Content-Transfer-Encoding: binary");
            
header("Content-Length: " $size);  
            
// Descargar archivo
            
readfile($path);
        } else {
            die(
"El archivo no existe.");
        } 
Gracias por vuestro tiempo y un saludo.