Index: trunk/core/kernel/utility/formatters.php =================================================================== diff -u -r2042 -r2329 --- trunk/core/kernel/utility/formatters.php (.../formatters.php) (revision 2042) +++ trunk/core/kernel/utility/formatters.php (.../formatters.php) (revision 2329) @@ -556,6 +556,12 @@ $ret = ''; $options = $object->GetFieldOptions($field_name); + if(getArrayValue($options, 'upload_dir')) + { + $this->DestinationPath = $options['upload_dir']; + $this->FullPath = DOC_ROOT.BASE_PATH.$this->DestinationPath; + } + if (getArrayValue($value, 'upload') && getArrayValue($value, 'error') == UPLOAD_ERR_NO_FILE) { return getArrayValue($value, 'upload'); @@ -565,11 +571,11 @@ { if ( is_array($value) && $value['error'] === UPLOAD_ERR_OK ) { - if ( !in_array($value['type'], $options['allowed_types']) ) + if ( getArrayValue($options, 'allowed_types') && !in_array($value['type'], $options['allowed_types']) ) { $object->FieldErrors[$field_name]['pseudo'] = 'bad_file_format'; } - elseif ( $value['size'] > ($options['max_size'] ? $options['max_size'] : MAX_UPLOAD_SIZE) ) + elseif ( $value['size'] > ($options['max_size'] ? $options['max_size'] : MAX_UPLOAD_SIZE) ) { $object->FieldErrors[$field_name]['pseudo'] = 'bad_file_size'; } @@ -587,7 +593,11 @@ } else { - $ret = $this->DestinationPath.$real_name; + if(getArrayValue($options, 'size_field')) + { + $object->SetDBField($options['size_field'], $value['size']); + } + $ret = getArrayValue($options, 'include_path') ? $this->DestinationPath.$real_name : $real_name; } } }