Advertisement
Googleinurl

Forma menos errada de FOPEN dow

Aug 29th, 2012
4,663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.27 KB | None | 0 0
  1. <?php      
  2.        
  3.        //o script sem validar baixa o arquivo determinado pelo GET
  4.        //Porem não impedi a manipulação da URL feito pelo usuário.
  5.        //Pra ficar mais seguro, utilize uma expressão regular para validar a GET.
  6.  
  7.         function download_arquivo($arquivo){
  8.         //Tamanho do arquivo em bytes.
  9.         $tamanho = filesize("$arquivo");
  10.         //Pegando a extensão do arquivo.
  11.         $ext = end(explode(".",$arquivo));
  12.         //Validando a extensão.
  13.         if ($ext =="php") {
  14.         echo "Arquivo não autorizado para download!";
  15.         exit();
  16.     }
  17.         //Gerar um nome aleatório de acordo com a data & hora via MD5.
  18.         $nome = $ext."googleinurl".md5(time());
  19.         //Envia cabeçalhos HTTP  informações tipo, tamanho entre outras.
  20.         header("Content-Type: application/save");
  21.         header("Content-Length: $tamanho");
  22.         header("Content-Disposition: attachment; filename=$nome.$ext");
  23.         header("Content-Transfer-Encoding: binary");
  24.         //Nesse momento envia o arquivo.
  25.         $fp = fopen("$arquivo", "r");
  26.         fpassthru($fp);
  27.         fclose($fp);
  28.  
  29.        //Usando a function Dowload
  30.        download_arquivo($_GET['arquivo']);
  31.      //ex: wwww.sitevull.com.br/baixar.php?arquivo=tutorial.pdf
  32.  
  33.  
  34. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement