function file_directory_temp
Gets the path of system-appropriate temporary directory.
Related topics
7 calls to file_directory_temp()
- DrupalTemporaryStreamWrapper::getDirectoryPath in includes/
stream_wrappers.inc  - Implements abstract public function getDirectoryPath()
 - FileDirectoryTest::testFileDirectoryTemp in modules/
simpletest/ tests/ file.test  - Ensure that the file_directory_temp() function always returns a value.
 - SystemArchiverTest::testArchiverTarball in modules/
system/ system.test  - Tests interacting with a tarball archive.
 - SystemArchiverTest::_testArchiverOutOfPath in modules/
system/ system.test  - Helper to test out-of-path extraction protection.
 - system_file_system_settings in modules/
system/ system.admin.inc  - Form builder; Configure the site file handling.
 
2 string references to 'file_directory_temp'
- system_update_7066 in modules/
system/ system.install  - Migrate the 'file_directory_temp' variable.
 - UploadUpgradePathTestCase::testUploadUpgrade in modules/
simpletest/ tests/ upgrade/ upgrade.upload.test  - Test a successful upgrade.
 
File
- 
              includes/
file.inc, line 2673  
Code
function file_directory_temp() {
  $temporary_directory = variable_get('file_temporary_path', NULL);
  if (empty($temporary_directory)) {
    $directories = array();
    // Has PHP been set with an upload_tmp_dir?
    if (ini_get('upload_tmp_dir')) {
      $directories[] = ini_get('upload_tmp_dir');
    }
    // Operating system specific dirs.
    if (substr(PHP_OS, 0, 3) == 'WIN') {
      $directories[] = 'c:\\windows\\temp';
      $directories[] = 'c:\\winnt\\temp';
    }
    else {
      $directories[] = '/tmp';
    }
    // PHP may be able to find an alternative tmp directory.
    // This function exists in PHP 5 >= 5.2.1, but Drupal
    // requires PHP 5 >= 5.2.0, so we check for it.
    if (function_exists('sys_get_temp_dir')) {
      $directories[] = sys_get_temp_dir();
    }
    foreach ($directories as $directory) {
      if (is_dir($directory) && is_writable($directory)) {
        $temporary_directory = $directory;
        break;
      }
    }
    if (empty($temporary_directory)) {
      // If no directory has been found default to 'files/tmp'.
      $temporary_directory = variable_get('file_public_path', conf_path() . '/files') . '/tmp';
      // Windows accepts paths with either slash (/) or backslash (\), but will
      // not accept a path which contains both a slash and a backslash. Since
      // the 'file_public_path' variable may have either format, we sanitize
      // everything to use slash which is supported on all platforms.
      $temporary_directory = str_replace('\\', '/', $temporary_directory);
    }
    // Save the path of the discovered directory.
    variable_set('file_temporary_path', $temporary_directory);
  }
  return $temporary_directory;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.