Index: branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php =================================================================== diff -u -N -r14628 -r14681 --- branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 14628) +++ branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 14681) @@ -1,6 +1,6 @@ _ensureUniqueFilename($this->FullPath, $real_name, $files2delete); + $real_name = $this->fileHelper->ensureUniqueFilename($this->FullPath, $real_name, $files2delete); $file_name = $this->FullPath.$real_name; $tmp_file = WRITEABLE . '/tmp/' . $swf_uploaded_ids[$i].'_'.$swf_uploaded_names[$i]; @@ -152,7 +152,8 @@ $object->SetError($field_name, 'cant_save_file', 'la_error_cant_save_file'); } else { - $real_name = $this->_ensureUniqueFilename($this->FullPath, $value['name']); + $real_name = $this->fileHelper->ensureUniqueFilename($this->FullPath, $value['name']); + $file_name = $this->FullPath . $real_name; if ( !move_uploaded_file($value['tmp_name'], $file_name) ) { $object->SetError($field_name, 'cant_save_file', 'la_error_cant_save_file'); @@ -345,33 +346,6 @@ return sprintf($format, $value); } - - /** - * Ensures, that uploaded file will not overwrite any of previously uploaded files with same name - * - * @param string $path - * @param string $name - * @param Array $forbidden_names - * @return string - */ - function _ensureUniqueFilename($path, $name, $forbidden_names = Array()) - { - $parts = pathinfo($name); - $ext = '.' . $parts['extension']; - $filename = mb_substr($parts['basename'], 0, -mb_strlen($ext)); - $new_name = $filename . $ext; - - while (file_exists($path . '/' . $new_name) || in_array(rtrim($path, '/') . '/' . $new_name, $forbidden_names)) { - if (preg_match('/(' . preg_quote($filename, '/') . '_)([0-9]*)(' . preg_quote($ext, '/') . ')/', $new_name, $regs)) { - $new_name = $regs[1] . ($regs[2] + 1) . $regs[3]; - } - else { - $new_name = $filename . '_1' . $ext; - } - } - - return $new_name; - } } class kPictureFormatter extends kUploadFormatter