summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/file.inc9
-rw-r--r--modules/system.module2
-rw-r--r--modules/system/system.module2
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.'));