diff --git a/vas/rest/class/vmlib/phpUtil.inc b/vas/rest/class/vmlib/phpUtil.inc
index 907ae7ec349bb9a6a96d6f1f17848a60045e6034..671dddecb70124385c936280c8a3b03e9b1857f0 100755
--- a/vas/rest/class/vmlib/phpUtil.inc
+++ b/vas/rest/class/vmlib/phpUtil.inc
@@ -1836,4 +1836,153 @@ function getFileUrlInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileNam
         }
     }
 }
+ 
+/** 
+ *This method allow to upload a file on the local server. 
+ *@file vmlib/phpUtil.inc 
+ *@param $sNomObjet Name of the object. 
+ *@param $sFileType Type of file needed. 
+ *@param $sServerPath New path of the file. 
+ *@param $sMaxSize Maximal size of the file. 
+ *@return $sErrorMsg The error message. 
+ */ 
+function uploadFileToLocal($sNomObjet, $sFileType, $sServerPath, $sMaxSize) {
+    global $properties, $sFolderLib; 
+    loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); 
+    $aExtensionPicture = array('gif', 'jpg', 'jpeg', 'png'); 
+    $aExtensionPictureAndPdf = array('gif', 'jpg', 'jpeg', 'png', 'pdf'); 
+    $aExtensionFile = array('pdf', 'gif', 'jpg', 'jpeg', 'png', 'txt'); 
+    $aExtensionZip = array('zip', 'gex'); 
+    $aExtensionFmw = array('fmw'); 
+    $aForbiddenExtension = explode('|', str_replace("*.", "", $properties['forbidden_extension'])); 
+    $sTmpFile = $_FILES[$sNomObjet]['tmp_name']; 
+    // Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien 
+    $sErrorMsg = ""; 
+ 
+    if ($sTmpFile == '') { 
+        if ($_FILES[$sNomObjet]['name'] != "") { 
+            switch ($_FILES[$sNomObjet]['error']) { 
+                case "1" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_UPLOAD_MAX_FILE_SIZE; 
+                    break; 
+                case "2" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MAX_FILE_SIZE; 
+                    break; 
+                case "3" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PARTIAL_DOWNLOAD; 
+                    break; 
+                case "4" : 
+                    $sErrorMsg = ERROR_NO_FILE_DOWNLOADED; 
+                    break; 
+                case "6" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MISSING_TEMP_FOLDER; 
+                    break; 
+                case "7" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_WRITING_DISK; 
+                    break; 
+                case "8" : 
+                    $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PHP_EXT_SEND; 
+                    break; 
+            } 
+            writeToErrorLog($sErrorMsg); 
+        } 
+        return $sErrorMsg; 
+    } 
+    $aTemp = explode("\\", $sServerPath); 
+    if (is_uploaded_file($sTmpFile)) { 
+        if (!in_array(extension($aTemp[count($aTemp) - 1]), $aForbiddenExtension)) { 
+            //Teste si le fichier correspont au format voulu. 
+            $bAllowUpload = false; 
+            $sFormat = ""; 
+            switch ($sFileType) { 
+                case "image" : 
+                    if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPicture)) { 
+                        $bAllowUpload = true; 
+                    } else { 
+                        foreach ($aExtensionPicture as $sValue) { 
+                            $sFormat .= " " . $sValue; 
+                        } 
+                        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+                        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+                    } 
+                    break; 
+                case "image-pdf" : 
+                    if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPictureAndPdf)) { 
+                        $bAllowUpload = true; 
+                    } else { 
+                        foreach ($aExtensionPictureAndPdf as $sValue) { 
+                            $sFormat .= " " . $sValue; 
+                        } 
+                        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+                        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+                    } 
+                    break; 
+                case "document" : 
+                    if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFile)) { 
+                        $bAllowUpload = true; 
+                    } else { 
+                        foreach ($aExtensionFile as $sValue) { 
+                            $sFormat .= " " . $sValue; 
+                        } 
+                        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+                        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+                    } 
+                    break; 
+                case "zip" : 
+                    if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionZip)) { 
+                        $bAllowUpload = true; 
+                    } else { 
+                        foreach ($aExtensionZip as $sValue) { 
+                            $sFormat .= " " . $sValue; 
+                        } 
+                        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+                        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+                    } 
+                    break; 
+                case "fmw" : 
+                    if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFmw)) { 
+                        $bAllowUpload = true; 
+                    } else { 
+                        foreach ($aExtensionFmw as $sValue) { 
+                            $sFormat .= " " . $sValue; 
+                        } 
+                        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+                        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+                    } 
+                    break; 
+                default : 
+ 
+                    $bAllowUpload = true; 
+ 
+                    break; 
+            } 
+ 
+            //Teste si le fichier n'est pas de trop grande taille. 
+            if ($_FILES[$sNomObjet]['size'] > $sMaxSize || $_FILES[$sNomObjet]['error'] == 1) { 
+                $bAllowUpload = false; 
+                if ($_FILES[$sNomObjet]['size'] > $sMaxSize) 
+                    $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . OF_LABEL_PHPUTIL . $_FILES[$sNomObjet]['size'] . ERROR_EXCEED_MAX_SIZE . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; 
+                if ($_FILES[$sNomObjet]['error'] > $sMaxSize) 
+                    $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_EXCEED_MAX_SIZE_PHP . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; 
+            } 
+            //Lance l'upload. 
+            if ($bAllowUpload) { 
+                if (!copy($sTmpFile, $sServerPath)) { 
+                    writeToErrorLog(ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath); 
+                    $sErrorMsg = ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . '.'; 
+                } 
+                unlink($sTmpFile); 
+                //chmod($sServerPath,755); 
+            } 
+        } else { 
+            writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); 
+            $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; 
+        } 
+    } else { 
+        writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER); 
+        $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER . ' (' . ERROR_CODE_PHPUTIL . $_FILES[$sNomObjet]['error'] . ').'; 
+    } 
+ 
+    return $sErrorMsg; 
+} 
 ?>