From fa2469c1dd3eb60f97a1824e0a37c65f83f3e332 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 17 May 2005 20:49:54 +0000 Subject: - Patch #23028 by chx: fixed file_check_location() problems. --- includes/file.inc | 9 ++++++++- modules/system.module | 2 +- modules/system/system.module | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/includes/file.inc b/includes/file.inc index 9740836e7..c62334154 100644 --- a/includes/file.inc +++ b/includes/file.inc @@ -170,7 +170,14 @@ function file_check_upload($source) { * @return 0 for invalid path or the real path of the source. */ function file_check_location($source, $directory = 0) { - $source = realpath($source); + $check = realpath($source); + if ($check) { + $source = $check; + } + else { + // This file does not yet exist + $source = realpath(dirname($source)) .'/'. basename($source); + } $directory = realpath($directory); if ($directory && strpos($source, $directory) !== 0) { return 0; diff --git a/modules/system.module b/modules/system.module index c0e5550ae..b3c825378 100644 --- a/modules/system.module +++ b/modules/system.module @@ -225,7 +225,7 @@ function system_view_general() { file_check_directory($directory_path, FILE_CREATE_DIRECTORY, 'file_directory_path'); $directory_temp = variable_get('file_directory_temp', FILE_DIRECTORY_TEMP); - file_check_directory(file_create_path($directory_temp), FILE_CREATE_DIRECTORY, 'file_directory_temp'); + file_check_directory($directory_temp, FILE_CREATE_DIRECTORY, 'file_directory_temp'); $group = form_textfield(t('File system path'), 'file_directory_path', $directory_path, 70, 255, t('A file system path where the files will be stored. This directory has to exist and be writable by Drupal. If the download method is set to public this directory has to be relative to Drupal installation directory, and be accessible over the web. When download method is set to private this directory should not be accessible over the web. Changing this location after the site has been in use will cause problems so only change this setting on an existing site if you know what you are doing.')); $group .= form_textfield(t('Temporary directory'), 'file_directory_temp', $directory_temp, 70, 255, t('Location where uploaded files will be kept during previews. Relative paths will be resolved relative to the file system path.')); diff --git a/modules/system/system.module b/modules/system/system.module index c0e5550ae..b3c825378 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -225,7 +225,7 @@ function system_view_general() { file_check_directory($directory_path, FILE_CREATE_DIRECTORY, 'file_directory_path'); $directory_temp = variable_get('file_directory_temp', FILE_DIRECTORY_TEMP); - file_check_directory(file_create_path($directory_temp), FILE_CREATE_DIRECTORY, 'file_directory_temp'); + file_check_directory($directory_temp, FILE_CREATE_DIRECTORY, 'file_directory_temp'); $group = form_textfield(t('File system path'), 'file_directory_path', $directory_path, 70, 255, t('A file system path where the files will be stored. This directory has to exist and be writable by Drupal. If the download method is set to public this directory has to be relative to Drupal installation directory, and be accessible over the web. When download method is set to private this directory should not be accessible over the web. Changing this location after the site has been in use will cause problems so only change this setting on an existing site if you know what you are doing.')); $group .= form_textfield(t('Temporary directory'), 'file_directory_temp', $directory_temp, 70, 255, t('Location where uploaded files will be kept during previews. Relative paths will be resolved relative to the file system path.')); -- cgit v1.2.3