diff --git a/admin-dev/themes/default/template/controllers/products/helpers/uploader/ajax.tpl b/admin-dev/themes/default/template/controllers/products/helpers/uploader/ajax.tpl index a80ab4b6b..886d26cc8 100644 --- a/admin-dev/themes/default/template/controllers/products/helpers/uploader/ajax.tpl +++ b/admin-dev/themes/default/template/controllers/products/helpers/uploader/ajax.tpl @@ -88,26 +88,34 @@ if (data.result) { if (typeof data.result.{$name} !== 'undefined') { for (var i=0; i'+data.result.{$name}[i].name+' : '+data.result.{$name}[i].error).parent().show(); } + else + { + $(data.context).appendTo($('#{$id}-success')); + $('#{$id}-success').parent().show(); + + if (data.result.{$name}[i] !== null && data.result.{$name}[i].status == 'ok') + { + var response = data.result.{$name}[i]; + var cover = "icon-check-empty"; + + if (response.cover == "1") + cover = "icon-check-sign"; + + imageLine(response.id, response.path, response.position, cover, response.shops, + response.legend[{$default_language|intval}]) + $("#countImage").html(parseInt($("#countImage").html()) + 1); + $("#img" + id).remove(); + $("#imageTable").tableDnDUpdate(); + } + } + } } $(data.context).find('button').remove(); - $(data.context).appendTo($('#{$id}-success')); - $('#{$id}-success').parent().show(); } }, }).on('fileuploadalways', function (e, data) { diff --git a/admin-dev/themes/default/template/helpers/uploader/ajax.tpl b/admin-dev/themes/default/template/helpers/uploader/ajax.tpl index edec4e359..abdaf6c6a 100644 --- a/admin-dev/themes/default/template/helpers/uploader/ajax.tpl +++ b/admin-dev/themes/default/template/helpers/uploader/ajax.tpl @@ -122,25 +122,32 @@ if (typeof data.result.{$name} !== 'undefined') { for (var i=0; i'; - - if (typeof data.result.{$name}[i].delete_url !== 'undefined') { - template += '

{l s='Delete'}

'; - } + if (typeof data.result.{$name}[i].error !== 'undefined' && data.result.{$name}[i].error != '') { + $('#{$id}-errors').html(''+data.result.{$name}[i].name+' : '+data.result.{$name}[i].error).parent().show(); + } + else + { + $(data.context).appendTo($('#{$id}-success')); + $('#{$id}-success').parent().show(); - template += ''; - $('#{$id}-images-thumbnails').html($('#{$id}-images-thumbnails').html()+template); - $('#{$id}-images-thumbnails').parent().show(); + if (typeof data.result.{$name}[i].image !== 'undefined') + { + var template = '
'; + template += '

'+data.result.{$name}[i].image+'

'; + + if (typeof data.result.{$name}[i].delete_url !== 'undefined') + template += '

{l s='Delete'}

'; + + template += '
'; + $('#{$id}-images-thumbnails').html($('#{$id}-images-thumbnails').html()+template); + $('#{$id}-images-thumbnails').parent().show(); + } } } } } - $(data.context).find('button').remove(); - $(data.context).appendTo($('#{$id}-success')); - $('#{$id}-success').parent().show(); + $(data.context).find('button').remove(); } }, }).on('fileuploadalways', function (e, data) { diff --git a/classes/Uploader.php b/classes/Uploader.php index c36036eea..23dff1196 100644 --- a/classes/Uploader.php +++ b/classes/Uploader.php @@ -168,25 +168,24 @@ class UploaderCore file_put_contents($file_path, fopen('php://input', 'r')); } - $file_size = $this->_getFileSize($file_path); + $file_size = $this->_getFileSize($file_path, true); if ($file_size === $file['size']) { $file['save_path'] = $file_path; - //TODO do image processing } else { $file['size'] = $file_size; unlink($file_path); - $file['error'] = 'abort'; + $file['error'] = Tools::displayError('Server file size is different from local file size'); } } - + return $file; } - protected function validate($file) + protected function validate(&$file) { $post_max_size = $this->getPostMaxSizeBytes(); diff --git a/classes/helper/HelperImageUploader.php b/classes/helper/HelperImageUploader.php index 708d420f7..829894630 100644 --- a/classes/helper/HelperImageUploader.php +++ b/classes/helper/HelperImageUploader.php @@ -42,7 +42,7 @@ class HelperImageUploaderCore extends HelperUploader return tempnam($this->getSavePath(), $this->getUniqueFileName()); } - protected function validate($file) + protected function validate(&$file) { $post_max_size = $this->getPostMaxSizeBytes(); @@ -62,7 +62,10 @@ class HelperImageUploaderCore extends HelperUploader } if ($error = ImageManager::validateUpload($file, Tools::getMaxUploadSize($this->getMaxSize()))) + { $file['error'] = $error; + return false; + } if ($file['size'] > $this->getMaxSize()) { diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 34ef4b96e..f5b5e522e 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -3648,6 +3648,9 @@ class AdminProductsControllerCore extends AdminController else $image->cover = 0; + if (isset($file['error'])) + continue; + if (!$image->add()) $file['error'] = Tools::displayError('Error while creating additional image'); else