1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema no download de ficheiros [php]

Discussão em 'Web Development' iniciada por toblesu, 7 de Maio de 2009. (Respostas: 1; Visualizações: 1198)

  1. toblesu

    toblesu Power Member

    Boas,

    Mais um probelma....

    Tenho um problema num código de download que já funcionou antes......

    código de UPLOAD:
    Código:
    [COLOR=DarkOrange]$titulo=$_FILES['arquivo']['name'];
    $aplication=$_FILES['arquivo']['type'];      
    $name = ereg_replace("[^a-zA-Z0-9_.]", "", strtr($titulo, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));    
    $uploaddir = "docs_folder/users_folder/".$username."/"; 
    $uploadfile = $uploaddir . $name;  
    if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)) {                                 
                $user_man->addUserdoc($name, $aplication, $_POST['docid'], $_POST['indexid']); 
    }[/COLOR]
     
    insere tudo bem na BD.

    código de DOWNLOAD:
    Código:
    [COLOR=White] [COLOR=DarkOrange]$lista_resultado = $user_man->getDocumentsById($docid);        
    $username = $_SESSION['user_panel']; [/COLOR]    
    [COLOR=DarkOrange]foreach ($lista_resultado as $row){             
           echo     $name = $row['name']; 
           echo $aplication = $row['aplication'];
    } 
                 
    $readdir = 'docs_folder/users_folder/'.$username.'/'.$name;    
    header("Content-Type: application/force-download"); 
    header ('Content-type: '.$aplication); 
    header ('Content-Disposition: attachment; filename='.$name); 
                 
    // The source of the attachment  
    readfile ($readdir);
    [/COLOR][/COLOR] 
    não sei que raio possa ter mal que ele não faz nada bem o Download.... melhor faz o download mas o ficheiro aparece corrompido e as vezes não abre sequer... e quando abre não mostra o verdadeiro conteúdo, codifica-o e ainda insere parte meu código.....

    Não percebo o problema, não sei se passa mal o tipo de ficheiro para a base de Dados.... não entendo e mais quando este código já funcionou anteriormente noutras aplicações... :S

    Se me puderem ajudar...
    Obrigado.
    :)
     
    Última edição pelo moderador: 7 de Maio de 2009
  2. toblesu

    toblesu Power Member

    Solução encontrada....

    inclusão de duas linhas antes do readfile e uma outra após o readfile...
    fica aqui a resolução para quem tiver o mesmo problema:


    (...)
    ob_clean();
    flush();

    // The source of the attachment
    readfile ($readdir);
    exit;
    }
     

Partilhar esta Página