<?php
//o script sem validar baixa o arquivo determinado pelo GET
//Porem não impedi a manipulação da URL feito pelo usuário.
function download_arquivo($arquivo){
//Tamanho do arquivo em bytes.
$tamanho = filesize("$arquivo");
//Pegando extensão do arquivo.
$ext = explode (".",$arquivo);
//Gerar um nome aleatório de acordo com a data & hora via MD5.
$nome = $ext[0].md5(time());
//Envia cabeçalhos HTTP informações tipo, tamanho entre outras.
header("Content-Type: application/save");
header("Content-Length: $tamanho");
header("Content-Disposition: attachment; filename=$nome.$ext[1]");
header("Content-Transfer-Encoding: binary");
//Nesse momento envia o arquivo.
$fp = fopen("$arquivo", "r");
fpassthru($fp);
fclose($fp);
//Usando a function Dowload
download_arquivo($_GET['arquivo']);
//ex: wwww.sitevull.com.br/baixar.php?arquivo=tutorial.pdf
?>