This is a simple script to enable your visitors download your files. The script can
be used for protection from direct download, check user's authentication, write logs,
and such.
Features
--------
* Can download any files: zip, images, pdf, php, etc.
* Displays a 'You are downloading...' page before sending the file.
* Simple and easy to develop.
INSTALLATION
------------
1. Move the script to your site, eg. http://yourdomain.com/download.php
2. If your download files reside in another directory, change the line:
$fileserver_path = dirname(__FILE__);
to the directory where your files reside. maybe something like this:
$fileserver_path = '/var/www/pub/downloads';
3. Refer your downloads to this script. eg:
http://yourdomain.com/download.php?file=how_to_make_money_online.pdf
<?php
/*
* use this script to enable your visitors to download
* your files.
*/
$fileserver_path = dirname(__FILE__); // change this to the directory your files reside
$req_file = basename($_GET['file']);
$whoami = basename(__FILE__); // you are free to rename this file
if (empty($req_file)) {
print "Usage: $whoami?file=<file_to_download>";
exit;
}
/* no web spamming */
if (!preg_match("/^[a-zA-Z0-9._-]+$/", $req_file, $matches)) {
print "I can't do that. sorry.";
exit;
}
/* download any file, but not this one */
if ($req_file == $whoami) {
print "I can't do that. sorry.";
exit;
}
/* check if file exists */
if (!file_exists("$fileserver_path/$req_file")) {
print "File <strong>$req_file</strong> doesn't exist.";
exit;
}
if (empty($_GET['send_file'])) {
header("Refresh: 5; url=$whoami?file=$req_file&send_file=yes");
}
else {
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize("$fileserver_path/$req_file"));
header('Content-Disposition: attachment; filename=' . $req_file);
readfile("$fileserver_path/$req_file");
exit;
}
?>
<!-- Change the HTML page below for your convenient -->
<html>
<head>
<title>Simple File Server and Downloader Demo Page</title>
<!-- Maybe Google Analytics here? -->
</head>
<body>
<h2>Downloading <?=$req_file?>...</h2>
<p>Your download should begin shortly. If it doesn't start,
follow this <a href="<?=$req_file?>">link</a>.</p>
</body>
</html>
0 comments:
Post a Comment