Index: branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php =================================================================== diff -u -N -r16596 -r16650 --- branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 16596) +++ branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 16650) @@ -1,6 +1,6 @@ SetError($field_name, 'cant_save_file', 'la_error_cant_save_file'); } else { - $real_name = $this->_getRealFilename($value['name'], $options, $object); - $file_name = $this->FullPath . $real_name; + $tmp_path = WRITEABLE . '/tmp/'; + $filename = $this->fileHelper->ensureUniqueFilename($tmp_path, $value['name'] . '.tmp'); + $tmp_file_path = $tmp_path . $filename; - $moved = move_uploaded_file($value['tmp_name'], $file_name); + $moved = move_uploaded_file($value['tmp_name'], $tmp_file_path); $storage_format = isset($options['storage_format']) ? $options['storage_format'] : false; if ( $storage_format ) { /** @var kUploadHelper $upload_helper */ $upload_helper = $this->Application->recallObject('kUploadHelper'); - $moved = $upload_helper->resizeUploadedFile($file_name, $storage_format); + $moved = $upload_helper->resizeUploadedFile($tmp_file_path, $storage_format); } + if ( $moved ) { + $real_name = $this->_getRealFilename( + kUtil::removeTempExtension(basename($tmp_file_path)), + $options, + $object + ); + $file_name = $this->FullPath . $real_name; + $moved = rename($tmp_file_path, $file_name); + } + if ( !$moved ) { $object->SetError($field_name, 'cant_save_file', 'la_error_cant_save_file'); }