8.5.x file.inc file_create_url($uri)
8.0.x file.inc file_create_url($uri)
8.1.x file.inc file_create_url($uri)
8.2.x file.inc file_create_url($uri)
8.3.x file.inc file_create_url($uri)
8.4.x file.inc file_create_url($uri)
8.6.x file.inc file_create_url($uri)
4.6.x file.inc file_create_url($path)
4.7.x file.inc file_create_url($path)
5.x file.inc file_create_url($path)
6.x file.inc file_create_url($path)
7.x file.inc file_create_url($uri)

Create the download path to a file.


$path A string containing the path of the file to generate URL for.:

Return value

A string containing a URL that can be used to download the file.

Related topics

4 calls to file_create_url()
blogapi_metaweblog_new_media_object in modules/blogapi/blogapi.module
Blogging API callback. Inserts a file into Drupal.
template_preprocess_user_picture in modules/user/user.module
Process variables for user-picture.tpl.php.
theme_upload_attachments in modules/upload/upload.module
Displays file attachments in table
_upload_form in modules/upload/upload.module


includes/file.inc, line 40
API for handling file uploads and server file management.


function file_create_url($path) {

  // Strip file_directory_path from $path. We only include relative paths in URLs.
  if (strpos($path, file_directory_path() . '/') === 0) {
    $path = trim(substr($path, strlen(file_directory_path())), '\\/');
  switch (variable_get('file_downloads', FILE_DOWNLOADS_PUBLIC)) {
      return $GLOBALS['base_url'] . '/' . file_directory_path() . '/' . str_replace('\\', '/', $path);
      return url('system/files/' . $path, array(
        'absolute' => TRUE,


Garrett Albright’s picture

Note that this function behaves very differently in Drupal 7. When it comes time to port to D7, try combining this function with file_build_uri() like this:

$file_uri = file_create_url(file_build_uri('images/example.jpeg'));