Index: branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php =================================================================== diff -u -N -r15733 -r15788 --- branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 15733) +++ branches/5.2.x/core/kernel/utility/formatters/upload_formatter.php (.../upload_formatter.php) (revision 15788) @@ -1,6 +1,6 @@ GetFieldOptions($field_name); $upload_dir = isset($options['include_path']) && $options['include_path'] ? '' : $this->getUploadDir($options); + $file_path = strlen($value) ? FULL_PATH . str_replace('/', DIRECTORY_SEPARATOR, $upload_dir) . $value : ''; if ( preg_match('/resize:([\d]*)x([\d]*)/', $format, $regs) ) { $image_helper = $this->Application->recallObject('ImageHelper'); /* @var $image_helper ImageHelper */ - return $image_helper->ResizeImage($value ? FULL_PATH . str_replace('/', DIRECTORY_SEPARATOR, $upload_dir) . $value : '', $format); + try { + return $image_helper->ResizeImage($file_path, $format); + } + catch ( \RuntimeException $e ) { + // error, during image resize -> return empty string + return ''; + } } + elseif ( !strlen($file_path) || !file_exists($file_path) ) { + // file doesn't exist OR not uploaded + return ''; + } switch ($format) { case 'display_name': return kUtil::removeTempExtension($value); break; case 'raw_url': - return $this->fileHelper->pathToUrl(FULL_PATH . $upload_dir . $value); + return $this->fileHelper->pathToUrl($file_path); break; case 'full_url': $direct_links = isset($options['direct_links']) ? $options['direct_links'] : true; if ( $direct_links ) { - return $this->fileHelper->pathToUrl(FULL_PATH . $upload_dir . $value); + return $this->fileHelper->pathToUrl($file_path); } else { $url_params = Array ( @@ -484,18 +495,18 @@ break; case 'full_path': - return FULL_PATH . str_replace('/', DIRECTORY_SEPARATOR, $upload_dir) . $value; + return $file_path; break; case 'file_size': - return filesize(FULL_PATH . str_replace('/', DIRECTORY_SEPARATOR, $upload_dir) . $value); + return filesize($file_path); break; case 'img_size': $image_helper = $this->Application->recallObject('ImageHelper'); /* @var $image_helper ImageHelper */ - $image_info = $image_helper->getImageInfo(FULL_PATH . str_replace('/', DIRECTORY_SEPARATOR, $upload_dir) . $value); + $image_info = $image_helper->getImageInfo($file_path); return $image_info ? $image_info[3] : ''; break; }