hook_file_download

developer/hooks/core.php, line 495

Versions
4.7 – 5
hook_file_download($file)
6 – 7
hook_file_download($filepath)

Control access to private file downloads and specify HTTP headers.

This hook allows modules enforce permisisons on file downloads when the private file download method is selected. Modules can also provide headers to specify information like the file's name or MIME type.

Parameters

$filepath String of the file's path.

Return value

If the user does not have permission to access the file, return -1. If the user has permission, return an array with the appropriate headers. If the file is not controlled by the current module, the return value should be NULL.

Related topics

Code

<?php
function hook_file_download($filepath) {
  // Check if the file is controlled by the current module.
  if ($filemime = db_result(db_query("SELECT filemime FROM {fileupload} WHERE filepath = '%s'", file_create_path($filepath)))) {
    if (user_access('access content')) {
      return array('Content-type:' . $filemime);
    }
    else {
      return -1;
    }
  }
}
?>
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.