diff --git a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
index a67d55c469a94ff377ac508711a219f5ddc25b18..7f6e6c99528102527c61f6b036ba256fc72c3d93 100644
--- a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
+++ b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc
@@ -49,7 +49,7 @@ class Files_manager{
      *@param $sServerPath New path of the file.
      *@param $sMaxSize Maximal size of the file.
      *@param $aFileValues File structure generated by extractFileStruct.
-     *@return $sErrorMsg The error message or the final file path on success.
+     *@return $aReturn
      */
     private function uploadFile($sNomObjet, $sFileType, $sServerPath, $sMaxSize, $aFileValues) {
         loadLang($this->sFolderLib, $this->oProperties["language"], $this->sFolderLib . "/");
@@ -64,10 +64,12 @@ class Files_manager{
         );
         $aForbiddenExtension = explode('|', str_replace("*.", "", $this->oProperties['forbidden_extension']));
         $sTmpFile = "";
+        $sFileName = "";
         $sErrorMsg = "";
         // si pas de aValues il y a eu une erreur pendant l'upload dans tmp du PUT
         if (!empty($aFileValues)){
             $sTmpFile = $aFileValues['tmp_name'];
+            $sFileName = $aFileValues['name'];
 
             // Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien
             if ($sTmpFile == '') {
@@ -134,22 +136,31 @@ class Files_manager{
                 }
 
                 // si c'est une image avec les infos de taille final on resample
-                if($sFileType === "image" && (isset($aFileValues["width"]) && isset($aFileValues["height"]))){
-
-                    // Resample l'image
-                    $sTmpFile = pictureResampler($sTmpFile, $aFileValues["width"], $aFileValues["height"], 0, 0, 0, 0, $sFileExtension);
-
-                    // Change l'extension de la destination
-                    $sMinFileExtension = $this->extension($sTmpFile);
-                    $aDestPathExt = explode('.', $sServerPath);
-                    array_pop($aDestPathExt);
-                    array_push($aDestPathExt, 'jpg');
-                    $sServerPath = implode('.', $aDestPathExt);
-
-                    if(!$sTmpFile){
-                        $bAllowUpload = false;
-                        writeToErrorLog(ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . ', while resampling picture, ' . $sServerPath);
-                        $sErrorMsg = ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . '.';
+                if(isset($aFileValues["width"]) && isset($aFileValues["height"])){
+
+                    // Si le fichier est une image
+                    if(@is_array(getimagesize($sTmpFile))){
+
+                        // Resample l'image
+                        $sTmpFile = pictureResampler($sTmpFile, $aFileValues["width"], $aFileValues["height"], 0, 0, 0, 0, $sFileExtension);
+
+                        // Change l'extension de la destination
+                        $sMinFileExtension = $this->extension($sTmpFile);
+                        $aDestPathExt = explode('.', $sServerPath);
+                        array_pop($aDestPathExt);
+                        array_push($aDestPathExt, 'jpg');
+                        $sServerPath = implode('.', $aDestPathExt);
+
+                        $aFileExt = explode('.', $sFileName);
+                        array_pop($aFileExt);
+                        array_push($aFileExt, 'jpg');
+                        $sFileName = implode('.', $aFileExt);
+
+                        if(!$sTmpFile){
+                            $bAllowUpload = false;
+                            writeToErrorLog(ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . ', while resampling picture, ' . $sServerPath);
+                            $sErrorMsg = ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . '.';
+                        }
                     }
                 }
 
@@ -169,7 +180,11 @@ class Files_manager{
             $sErrorMsg = FILE_LABEL_PHPUTIL . "File" . ERROR_DOWNLOAD_SERVER . '.';
         }
 
-        return $sErrorMsg;
+        return array(
+            'message' => $sMessage,
+            'file_name' => $sFileName,
+            'file_path' => $sServerPath
+        );
     }
 
     /**
@@ -183,23 +198,37 @@ class Files_manager{
         $aFileStruc = array();
         if (!isset($aValues[$sField . "_name"])){
             // Extract From Post $File Struct
-            $aFileStruc = array(
-                "name" => $_FILES[$sField]['name'],
-                "tmp_name" => $_FILES[$sField]['tmp_name'],
-                "error" => $_FILES[$sField]['error'],
-                "size" => $_FILES[$sField]['size']
-            );
+            if (!empty($_FILES[$sField]['name'])) {
+                $aFileStruc = array(
+                    "name" => $_FILES[$sField]['name'],
+                    "tmp_name" => $_FILES[$sField]['tmp_name'],
+                    "error" => $_FILES[$sField]['error'],
+                    "size" => $_FILES[$sField]['size']
+                );
+                if (!empty($_FILES[$sField]['width'])) {
+                    $aFileStruc['width'] = $_FILES[$sField]['width'];
+                }
+                if (!empty($_FILES[$sField]['height'])) {
+                    $aFileStruc['height'] = $_FILES[$sField]['height'];
+                }
+            }
 
             // Fichiers multiples
-            if (!empty($_FILES[$sField][0])) {
-                $aFileStruc = [];
+            if (!empty($_FILES[$sField][0]['name'])) {
                 for ($i=0; $i < count($_FILES[$sField]); $i++) {
-                    $aFileStruc[] = array(
+                    $aTmpFileStruc = array(
                         "name" => $_FILES[$sField][$i]['name'],
                         "tmp_name" => $_FILES[$sField][$i]['tmp_name'],
                         "error" => $_FILES[$sField][$i]['error'],
                         "size" => $_FILES[$sField][$i]['size']
                     );
+                    if (!empty($_FILES[$sField][$i]['width'])) {
+                        $aTmpFileStruc['width'] = $_FILES[$sField][$i]['width'];
+                    }
+                    if (!empty($_FILES[$sField]['height'])) {
+                        $aTmpFileStruc['height'] = $_FILES[$sField][$i]['height'];
+                    }
+                    array_push($aFileStruc, $aTmpFileStruc);
                 }
             }
 
@@ -242,7 +271,7 @@ class Files_manager{
      *@param $sFileTypeCtrl Type of the document. (set to all to disable this control)
      *@param $aFileStruct File structure to upload
      *@param $bCreateThumbnailImage true to create automatically a thumnail image
-     *@return $sErrorMsg The error message.
+     *@return $aReturn
      */
     public function uploadInWsDataDir($sModule, $sObject, $mId, $sField, $sContainer = "", $iMaxSize = -1, $sFileTypeCtrl = "all", $aFileStruct = null, $bCreateThumbnail = false){
 
@@ -324,15 +353,12 @@ class Files_manager{
             }
         }
 
-        // Upload du fichier
-        $sMessage = $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
-
         // Image miniature
         $sMinDestPath = null;
-        if ($bCreateThumbnail === true && file_exists($sDestPath)) {
+        if ($bCreateThumbnail === true && file_exists($aFileStruct['tmp_name'])) {
 
             // Si image
-            if(@is_array(getimagesize($sDestPath))){
+            if(@is_array(getimagesize($aFileStruct['tmp_name']))){
 
                 $aThumbnailFileStruct = $aFileStruct;
                 $aThumbnailFileStruct["width"] = 200;
@@ -340,25 +366,25 @@ class Files_manager{
                 $aThumbnailFileStruct['tmp_name'] = $aThumbnailFileStruct['tmp_name'] . '.min';
                 $aDestPathExt = explode('.', $sDestPath);
 
-                // Ajoute l'extension à l'image
-                $aThumbnailFileStruct['tmp_name'] .= '.' . end($aDestPathExt);
-
                 // Ajoute .min sur la destination
                 array_splice($aDestPathExt, -1, 0, 'min');
                 $sMinDestPath = implode('.', $aDestPathExt);
 
                 // Copie le fichier dans tmp
-                copy($sDestPath, $aThumbnailFileStruct['tmp_name']);
+                copy($aFileStruct['tmp_name'], $aThumbnailFileStruct['tmp_name']);
 
                 // Upload le fichier .min.jpg
                 $this->uploadFile($sField, "image", $sMinDestPath, $iMaxSize, $aThumbnailFileStruct);
             }
         }
 
+        // Upload du fichier
+        $aUploadReturn = $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
+
         return array(
-            'message' => $sMessage,
-            'field_value' => $aFileStruct["name"],
-            'file_name' => $aFileStruct["name"],
+            'message' => $aUploadReturn['message'],
+            'field_value' => $aUploadReturn["file_name"],
+            'file_name' => $aUploadReturn["file_name"],
             'file_path' => $sDestPath,
             'file_min_path' => $sMinDestPath
         );
@@ -413,7 +439,8 @@ class Files_manager{
           }
       }
       // Upload du fichier
-      return $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
+      $aUploadReturn = $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
+      return $aUploadReturn['message'];
     }
 
     /**
@@ -465,7 +492,8 @@ class Files_manager{
           }
       }
       // Upload du fichier
-      return $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
+      $aUploadReturn = $this->uploadFile($sField, $sFileTypeCtrl, $sDestPath, $iMaxSize, $aFileStruct);
+      return $aUploadReturn['message'];
     }
 
     /**
diff --git a/src/vitis/vas/rest/ws/vitis/Vitis.class.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
index 71bb195fa2183f148586600fd9559754dcb24e04..0cfa33e45373d8146d7043148a37136fbb11ba1b 100644
--- a/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
@@ -1574,20 +1574,20 @@ class Vitis extends DbClass {
                 if (in_array($sFieldName, $aUploadFilesCols) || $aUploadFiles === '*') {
 
                     // width / height
-                    if (!empty($aUploadFilesCols[$sFieldName]['width']) &&
-                        !empty($aUploadFilesCols[$sFieldName]['height'])) {
+                    if (!empty($aUploadFiles[$sFieldName]['width']) &&
+                        !empty($aUploadFiles[$sFieldName]['height'])) {
 
                         // Fichier unique
                         if (!empty($_FILES[$sFieldName]['name'])) {
-                            $_FILES[$sFieldName]['width'] = $aUploadFilesCols[$sFieldName]['width'];
-                            $_FILES[$sFieldName]['height'] = $aUploadFilesCols[$sFieldName]['height'];
+                            $_FILES[$sFieldName]['width'] = $aUploadFiles[$sFieldName]['width'];
+                            $_FILES[$sFieldName]['height'] = $aUploadFiles[$sFieldName]['height'];
                         }
 
                         // Fichiers multiples
                         if (!empty($_FILES[$sFieldName][0]['name'])) {
                             for ($i=0; $i < count($_FILES[$sFieldName]); $i++) {
-                                $_FILES[$sFieldName][$i]['width'] = $aUploadFilesCols[$sFieldName]['width'];
-                                $_FILES[$sFieldName][$i]['height'] = $aUploadFilesCols[$sFieldName]['height'];
+                                $_FILES[$sFieldName][$i]['width'] = $aUploadFiles[$sFieldName]['width'];
+                                $_FILES[$sFieldName][$i]['height'] = $aUploadFiles[$sFieldName]['height'];
                             }
                         }
                     }