diff --git a/application/modules/admin/controllers/RedmineController.php b/application/modules/admin/controllers/RedmineController.php index 8538d86fc7c1ea865abda1c7c3ea32ff1b5af2d6..b67323d7f4a25c2ca89983ca6d2b4ab467f63008 100644 --- a/application/modules/admin/controllers/RedmineController.php +++ b/application/modules/admin/controllers/RedmineController.php @@ -185,7 +185,15 @@ class Admin_RedmineController extends ZendAfi_Controller_Action { if (null !== $message = $service->validate()) return $this->_jsonError($this->_('Le service Redmine est invalide.')); - if (!$response = $service->uploadFile($this->_getParam('data'))) + if(!$data = $this->_getParam('data')) + return $this->_jsonError($this->_('La pièce jointe est invalide.')); + + $data = substr($data, strpos($data, ",") + 1); + + if(!$data = base64_decode($data)) + return $this->_jsonError($this->_('La pièce jointe est invalide.')); + + if (!$response = $service->uploadFile($data)) return $this->_jsonError($this->_('L\'ajout de pièce jointe a échoué.')); $decoded_response = json_decode($response, true); diff --git a/public/opac/js/file_uploader.js b/public/opac/js/file_uploader.js index cccea83fdf50b25f9f026b7146713635650482a6..bfd89a389d12b5f61f0946bdeafc963de7139d21 100644 --- a/public/opac/js/file_uploader.js +++ b/public/opac/js/file_uploader.js @@ -23,16 +23,17 @@ var reader = new FileReader(); - reader.onloadend = function(e) { - var data_url = reader.result; + reader.onload = function(e) { + var file_content = e.target.result; if(is_image) { var image = new Image(); - image.src = data_url; - image_preview.attr('src', data_url); + image.src = file_content; + image_preview.attr('src', file_content); image_preview.show(); } $.post(url, - {data: data_url}, + {data: file_content, + processData: false}, function(data) { if('message' in data) return input_file.closest('form').find('#attachment_error').show().text(data.message);