You are here

public static function FileSystem::getOsTemporaryDirectory in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory()

Discovers a writable system-appropriate temporary directory.

Return value

string|false A string containing the path to the temporary directory, or FALSE if no suitable temporary directory can be found.

11 calls to FileSystem::getOsTemporaryDirectory()
BuildTestBase::findAvailablePort in core/tests/Drupal/BuildTests/Framework/BuildTestBase.php
Discover an available port number.
BuildTestBase::setUp in core/tests/Drupal/BuildTests/Framework/BuildTestBase.php
DirectoryTest::testFileDirectoryTemp in core/tests/Drupal/KernelTests/Core/File/DirectoryTest.php
Ensure that the getTempDirectory() method always returns a value.
FileSystem::getTempDirectory in core/lib/Drupal/Core/File/FileSystem.php
Gets the path of the configured temporary directory.
FileSystemTempDirectoryTest::testGetTempDirectoryOsDefault in core/tests/Drupal/KernelTests/Core/File/FileSystemTempDirectoryTest.php
Tests os default fallback.

... See full list

File

core/lib/Drupal/Component/FileSystem/FileSystem.php, line 17

Class

FileSystem
Provides file system functions.

Namespace

Drupal\Component\FileSystem

Code

public static function getOsTemporaryDirectory() {
  $directories = [];

  // 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.
  $directories[] = sys_get_temp_dir();
  foreach ($directories as $directory) {
    if (is_dir($directory) && is_writable($directory)) {

      // Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths
      // with a trailing directory separator.
      return rtrim($directory, DIRECTORY_SEPARATOR);
    }
  }
  return FALSE;
}