<?
  $dir = 'c:/';
  // diret�rio onde o arquivo se encontra, com barra no final (/)
  $arq = 'readme.txt';
  // nome do arquivo
  
  function erro_JS($tex){
  // fun��o que retorna um alert de uma mensagem
    echo '
          <SCRIPT language="JavaScript">
            window.alert('.$tex.');
          </SCRIPT>';
    exit();
  }

  function retorna_extensao($arq){
  // fun��o que rotorna a extens�o do arquivo $arq
  
    $arr = explode('.', $arq);
    // Quanbra o nome do arquivo em um array
    $num = count($arr)-1;
    // N�mero total de partes do array
    $ext = $arr[$num];
    // Retorna a �ltima parte do array
    
    return $ext;
    // Retorna a extens�o
  }
  
  $ext = retorna_extensao($arq);
  // Switch que compara as extens�es
  switch($ext){
    case "pdf": $var = "application/pdf";
                break;
    case "exe": $var = "application/octet-stream";
                break;
    case "zip": $var = "application/zip";
                break;
    case "doc": $var = "application/msword";
                break;
    case "xls": $var = "application/vnd.ms-excel";
                break;
    case "ppt": $var = "application/vnd.ms-powerpoint";
                break;
    case "gif": $var = "image/gif";
                break;
    case "png": $var = "image/png";
                break;
    case "jpeg":
    case "jpg": $var = "image/jpg";
                break;
    default: $var = "application/force-download";
}

  if(file_exists($dir.$arq)){
  // Se o arquivo relamente existir aplica os header para download
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false); // required for certain browsers
    header("Content-Type: $var");

    header("Content-Disposition: attachment; filename=\"".basename($arq)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($dir.$arq));
    readfile("$dir.$arq");
  } else {
  // Se o arquivo n�o existir, retorna uma mensagem de erro
    erro_JS('Erro ao tentar fazer download de arquivo!');
  }
?>