You can put the files into a database and then provide them with a link that pulls the files from the database. This way you could make dynamic links that are tied to a session and put all kinds of security on it.
The other option is to just fread the files that are below the webserver document root and output them with the correct headers. I was looking for some code for you but haven't got a working example at this moment. Start looking at "fread" on the www.php.net site.
Here is example code for fread-ing a file in and outputing it. You will have to know the Content-Type of each file for it to work correctly.
<?php
$path = "C:/temp/ldap_model.pdf";
if ($file = fopen($path, 'rb')) {
while(!feof($file) and (connection_status()==0)) {
$f .= fread($file, 1024*8);
}
fclose($file);
}
header("Content-type: application/pdf");
print $f;
?>
If you have PHP 4.3.0 or higher (and some php.ini settings, look at http://www.zend.com/manual/ref.mime-magic.php)this code will work for finding the MIME Content-Type:
header("Content-type: " . mime_content_type($path));
If you have access to a database, its the best solution for making some implementation specific security rules.