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

function getFileName($id)
{
  if(!$link = mysql_connect("localhost", "test", "test")){
    //echo("Problem z połączeniem z bazą danych.");
    return false;
  }
  if(!mysql_select_db("test")){
    //echo("Problem z połączeniem z bazą danych.");
    mysql_close($link);
    return false;
  }

  $query = "SELECT NAME FROM FILES WHERE ID='$id'";

  if(!$result = mysql_query($query)){
    //echo("Problem z bazą danych: odrzucone zapytanie");
    mysql_close($link);
    return false;
  }

  $row = mysql_fetch_row($result);
  if(!$row){
    //echo("Nie ma takiego wpisu w bazie");
    mysql_close($link);
    return false;
  }
  mysql_close($link);
  return $row[0];
}

function send($name)
{
  if(!file_exists($name)){
    echo('Nie ma takiego pliku na serwerze!');
    return false;
  }

  if(($fileName = strrchr($name, "/")) == false){
    return false;
  }
  $fileName = substr($fileName, 1, strlen($fileName));
  $fd = fopen($name,"r");
  $size = filesize($name);
  $contents = fread($fd, filesize($name));

  fclose($fd);

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

  echo $contents;
  return true;
}
if(isSet($_GET['id'])){
  if(($name = getFileName($_GET['id'])) === false){
    echo('Nie ma takiego pliku na serwerze!');
  }
  else{
    if(!send($name)){
      echo('Nie ma takiego pliku na serwerze!');
    }
  }
}
else{
  echo('Nie ma takiego pliku na serwerze!');
}
?>
