Index: branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php =================================================================== diff -u -N -r15446 -r15455 --- branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 15446) +++ branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 15455) @@ -1,6 +1,6 @@ Application->RemoveVar($object->getFileInfoVariableName($field_name, $id)); - return $value; + return Array (); } $files_info = unserialize($files_info); @@ -324,8 +324,13 @@ } $this->Application->RemoveVar($object->getFileInfoVariableName($field_name, $id)); + $object->SetDBField($field_name, implode('|', $live_files)); - return implode('|', $live_files); + if ( $object->GetOriginalField($field_name, true) != $object->GetField($field_name) ) { + return Array ($field_name); + } + + return Array (); } /** Index: branches/5.2.x/core/kernel/db/dbitem.php =================================================================== diff -u -N -r15454 -r15455 --- branches/5.2.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 15454) +++ branches/5.2.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 15455) @@ -1,6 +1,6 @@ _getUploaderFields(); foreach ($uploader_fields as $field) { $formatter = $this->Application->recallObject($this->GetFieldOption($field, 'formatter')); /* @var $formatter kUploadFormatter */ - $this->SetDBField($field, $formatter->processFlashUpload($this, $field, $id)); + $changed_fields = array_merge($changed_fields, $formatter->processFlashUpload($this, $field, $id)); } - if ( $this->GetChangedFields() ) { - $this->Update(); + if ( $changed_fields ) { + $this->Update(null, array_unique($changed_fields)); } }