function file_get_content_headers

Examines a file entity and returns appropriate content headers for download.

Parameters

Drupal\file\File $file: A file entity.

Return value

An associative array of headers, as expected by \Symfony\Component\HttpFoundation\StreamedResponse.

1 call to file_get_content_headers()
file_file_download in drupal/core/modules/file/file.module
Implements hook_file_download().

File

drupal/core/modules/file/file.module, line 560
Defines a "managed_file" Form API field and a "file" field for Field module.

Code

function file_get_content_headers(File $file) {
  $name = mime_header_encode($file->filename);
  $type = mime_header_encode($file->filemime);

  // Serve images, text, and flash content for display rather than download.
  $inline_types = variable_get('file_inline_types', array(
    '^text/',
    '^image/',
    'flash$',
  ));
  $disposition = 'attachment';
  foreach ($inline_types as $inline_type) {

    // Exclamation marks are used as delimiters to avoid escaping slashes.
    if (preg_match('!' . $inline_type . '!', $file->filemime)) {
      $disposition = 'inline';
    }
  }
  return array(
    'Content-Type' => $type,
    'Content-Length' => $file->filesize,
    'Content-Disposition' => $disposition . '; filename="' . $name . '"',
    'Cache-Control' => 'private',
  );
}