function file_directory_temp in Drupal 7
Same name and namespace in other branches
- 8 core/includes/file.inc \file_directory_temp()
- 4 includes/file.inc \file_directory_temp()
- 5 includes/file.inc \file_directory_temp()
- 6 includes/file.inc \file_directory_temp()
Gets the path of system-appropriate temporary directory.
Related topics
5 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.
- system_file_system_settings in modules/
system/ system.admin.inc - Form builder; Configure the site file handling.
- system_requirements in modules/
system/ system.install - Implements hook_requirements().
- system_update_7066 in modules/
system/ system.install - Migrate the 'file_directory_temp' variable.
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 2594 - API for handling file uploads and server file management.
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;
}