Index: branches/5.3.x/core/kernel/utility/formatters/upload_formatter.php =================================================================== diff -u -N -r16519 -r16600 --- branches/5.3.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 16519) +++ branches/5.3.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 16600) @@ -1,6 +1,6 @@ DestinationPath && !isset($field_options['upload_dir']) ) { + $base_path = $object->getUnitConfig()->getBasePath(); + $field_options['upload_dir'] = WRITEBALE_BASE . '/' . basename($base_path) . '/'; + } + + if ( !isset($field_options['max_size']) ) { + $field_options['max_size'] = MAX_UPLOAD_SIZE; + } + } + + /** * Processes file uploads from form * * @param mixed $value @@ -71,11 +92,18 @@ } if ( is_array($value) && isset($value['tmp_ids']) ) { - // SWF Uploader - return $this->_processFlashUploader($value, $field_name, $object); + $ret = $this->_processFlashUploader($value, $field_name, $object); } + else { + $ret = $this->_processRegularUploader($value, $field_name, $object); + } - return $this->_processRegularUploader($value, $field_name, $object); + if ( getArrayValue($options, 'upload_dir') ) { + $this->DestinationPath = null; + $this->FullPath = null; + } + + return $ret; } /** @@ -186,8 +214,6 @@ if ( is_array($value) && count($value) > 1 && $value['size'] ) { if ( is_array($value) && (int)$value['error'] === UPLOAD_ERR_OK ) { - $max_file_size = isset($options['max_size']) ? $options['max_size'] : MAX_UPLOAD_SIZE; - // we can get mime type based on file content and don't use one, provided by the client // $value['type'] = kUtil::mimeContentType($value['tmp_name']); @@ -209,7 +235,7 @@ $object->SetError($field_name, 'bad_file_format', 'la_error_InvalidFileFormat', $error_params); } - elseif ( $value['size'] > $max_file_size ) { + elseif ( $value['size'] > $options['max_size'] ) { $object->SetError($field_name, 'bad_file_size', 'la_error_FileTooLarge'); } elseif ( !is_writable($this->FullPath) ) { @@ -219,20 +245,14 @@ $real_name = $this->_getRealFilename($value['name'], $options, $object); $file_name = $this->FullPath . $real_name; + $moved = move_uploaded_file($value['tmp_name'], $file_name); $storage_format = isset($options['storage_format']) ? $options['storage_format'] : false; if ( $storage_format ) { - /** @var ImageHelper $image_helper */ - $image_helper = $this->Application->recallObject('ImageHelper'); - - move_uploaded_file($value['tmp_name'], $value['tmp_name'] . '.jpg'); // add extension, so ResizeImage can work - $url = $image_helper->ResizeImage($value['tmp_name'] . '.jpg', $storage_format); - $tmp_name = preg_replace('/^' . preg_quote($this->Application->BaseURL(), '/') . '/', '/', $url); - $moved = rename($tmp_name, $file_name); + /** @var kUploadHelper $upload_helper */ + $upload_helper = $this->Application->recallObject('kUploadHelper'); + $moved = $upload_helper->resizeUploadedFile($file_name, $storage_format); } - else { - $moved = move_uploaded_file($value['tmp_name'], $file_name); - } if ( !$moved ) { $object->SetError($field_name, 'cant_save_file', 'la_error_cant_save_file');