1. drupal
    1. 8
    2. 7
7 – 8 drupal_tempnam($directory, $prefix)

Creates a file with a unique filename in the specified directory.

PHP's tempnam() does not return a URI like we want. This function will return a URI if given a URI, or it will return a filepath if given a filepath.

Compatibility: normal paths and stream wrappers.


$directory The directory where the temporary filename will be created.

$prefix The prefix of the generated temporary filename. Note: Windows uses only the first three characters of prefix.

Return value

The new temporary filename, or FALSE on failure.

See also



Related topics

▾ 4 functions call drupal_tempnam()

file_example_unmanaged_php_submit in examples/file_example/file_example.module
file_unmanaged_save_data in includes/file.inc
Save a string to the specified destination without invoking file API.
image_gd_save in modules/system/image.gd.inc
GD helper to write an image resource to a destination file.
update_manager_local_transfers_allowed in modules/update/update.manager.inc
Determines if file transfers will be performed locally.


includes/file.inc, line 2358

function drupal_tempnam($directory, $prefix) {
  $scheme = file_uri_scheme($directory);

  if ($scheme && file_stream_wrapper_valid_scheme($scheme)) {
    $wrapper = file_stream_wrapper_get_instance_by_scheme($scheme);

    if ($filename = tempnam($wrapper->getDirectoryPath(), $prefix)) {
      return $scheme . '://' . basename($filename);
    else {
      return FALSE;
  else {
    // Handle as a normal tempnam() call.
    return tempnam($directory, $prefix);