function FileSystem::getOsTemporaryDirectory

Same name in other branches
  1. 9 core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory()
  2. 8.9.x core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory()
  3. 10 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.

10 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 19

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 (str_starts_with(PHP_OS, '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;
}

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