function file_save_upload in Drupal 4
Same name and namespace in other branches
- 8 core/modules/file/file.module \file_save_upload()
- 5 includes/file.inc \file_save_upload()
- 6 includes/file.inc \file_save_upload()
- 7 includes/file.inc \file_save_upload()
- 9 core/modules/file/file.module \file_save_upload()
- 10 core/modules/file/file.module \file_save_upload()
Saves a file upload to a new location. The source file is validated as a proper upload and handled as such.
Parameters
$source A string specifying the name of the upload field to save.: This parameter will contain the resulting destination filename in case of success.
$dest A string containing the directory $source should be copied to,: will use the temporary directory in case no other value is set.
$replace A boolean, set to true if the destination should be replaced: when in use, but when false append a _X to the filename.
Return value
An object containing file info or 0 in case of error.
Related topics
3 calls to file_save_upload()
- system_theme_settings in modules/
system.module - Menu callback; display theme configuration for entire site and individual themes.
- upload_save in modules/
upload.module - user_validate_picture in modules/
user.module
File
- includes/
file.inc, line 484 - API for handling file uploads and server file management.
Code
function file_save_upload($source, $dest = false, $replace = FILE_EXISTS_RENAME) {
// Make sure $source exists && is valid.
if ($file = file_check_upload($source)) {
// This should be refactored, file_check_upload has already
// moved the file to the temporary folder.
if (!$dest) {
$dest = file_directory_temp();
$temporary = 1;
if (is_file($file->filepath)) {
// If this file was uploaded by this user before replace the temporary copy.
$replace = FILE_EXISTS_REPLACE;
}
}
unset($_SESSION['file_uploads'][is_object($source) ? $source->source : $source]);
if (file_move($file, $dest, $replace)) {
if ($temporary) {
$_SESSION['file_uploads'][is_object($source) ? $source->source : $source] = $file;
}
return $file;
}
return 0;
}
return 0;
}