<?php
/*Skrypt pochodzi z ksi±¿ki "PHP. 101 praktycznych skryptów"
  autor: Marcin Lis                    http://marcinlis.com*/

$filesPath = "/pliki/";

function securityCheck($name)
{
  $wyr = "^[a-z0-9_-]+(\.[a-z0-9_-]+)*$";
  return eregi($wyr, $name);
}
function send($fileName, $filePath)
{
  if(!file_exists($filePath.$fileName)){
    echo('Nie ma takiego pliku na serwerze!');
    return;
  }
  $fd = fopen($filePath.$fileName,"r");
  $size = filesize($filePath.$fileName);
  $contents = fread($fd, filesize($filePath.$fileName));

  fclose($fd);

  header("Content-Type: application/octet-stream");
  header("Content-Length: $size;");
  header("Content-Disposition: attachment; filename=$fileName");

  echo $contents;
}
if(isSet($_GET['name'])){
  if(!securityCheck($_GET['name'])){
    echo('Nie ma takiego pliku na serwerze!');
  }
  else{
    send($_GET['name'], $filesPath);
  }
}
else{
  echo('Nie ma takiego pliku na serwerze!');
}
?>
