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);