A force download script in PHP can give you more control over a file download rather than providing a direct link.
Using a force-download script, you can:
- Validate whether a user is logged in
- Track total number of download
<?php function force_download( $file, $new_name="filename.doc" ) { $dir = ""; if ((isset($file))&&(file_exists($dir.$file))) { header('Content-type: application/force-download'); header('Content-Disposition: inline; filename="' . $dir.$file . '"'); header('Content-Transfer-Encoding: Binary'); header('Content-length: '.filesize($dir.$file)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.$new_name.'"'); readfile("$dir$file"); } else { echo "No file selected"; } } $file = 'myfile.doc'; $filename = "download"; $original_path = 'path/to/myfile.doc'; $file_new_name = $filename.".".end(explode(".",$original_path)); force_download($original_path,$file_new_name); ?>
You will need to validate that the file does not provide access to your code, files you do not want to download, and so on.