Index: db_event_handler.php =================================================================== --- db_event_handler.php (revision 13862) +++ db_event_handler.php (working copy) @@ -2644,14 +2644,11 @@ $field_name = $this->Application->GetVar('field'); $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $field_options = array_key_exists($field_name, $fields) ? $fields[$field_name] : $virtual_fields[$field_name]; - if (array_key_exists($field_name, $fields)) { - $upload_dir = $fields[$field_name]['upload_dir']; - } - else { - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); - $upload_dir = $virtual_fields[$field_name]['upload_dir']; - } + $upload_dir = $field_options['upload_dir']; + $storage_format = array_key_exists('storage_format', $field_options) ? $field_options['storage_format'] : false; if (!is_writable($tmp_path)) { // 500 Internal Server Error @@ -2666,7 +2663,19 @@ $fname = $upload_formatter->_ensureUniqueFilename($tmp_path, $fname); - move_uploaded_file($value['tmp_name'], $tmp_path.$fname); + if ($storage_format) { + $image_helper =& $this->Application->recallObject('ImageHelper'); + /* @var $image_helper 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); + rename($tmp_name, $tmp_path.$fname); + } + else { + move_uploaded_file($value['tmp_name'], $tmp_path.$fname); + } + echo preg_replace('/^' . preg_quote($id, '/') . '_/', '', $fname); $this->deleteTempFiles($tmp_path);