Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function file_transfer

Transfers a file to the client using HTTP.

Pipes a file through Drupal to the client.

Parameters

$uri: String specifying the file URI to transfer.

$headers: An array of HTTP headers to send along with file.

Related topics

File interface
Common file handling functions.
2 calls to file_transfer()
file_download in includes/file.inc
Menu handler for private file transfers.
image_style_deliver in modules/image/image.module
Page callback: Generates a derivative, given a style and image path.

File

includes/file.inc, line 2043

Code

function file_transfer ($uri, $headers) {
 if (ob_get_level ()) {
 ob_end_clean ();
 }
 foreach ($headers as $name => $value) {
 drupal_add_http_header ($name, $value);
 }
 drupal_send_headers ();
 $scheme = file_uri_scheme ($uri);
 // Transfer file in 1024 byte chunks to save memory usage.
 if ($scheme && file_stream_wrapper_valid_scheme ($scheme) && $fd = fopen ($uri, 'rb')) {
 while (!feof ($fd)) {
 print fread ($fd, 1024);
 }
 fclose ($fd);
 }
 else {
 drupal_not_found ();
 }
 drupal_exit ();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.