From a16b018e9dd7eb892c32e96c74b1155fc93fa1cd Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Wed, 9 Jan 2019 14:27:09 +0100 Subject: [PATCH] Gestion de fichiers multiples en POST --- .../web_service/ws/Querys.class.inc | 53 +++---------------- 1 file changed, 7 insertions(+), 46 deletions(-) diff --git a/src/module_vmap/web_service/ws/Querys.class.inc b/src/module_vmap/web_service/ws/Querys.class.inc index 5a835e75..8780bb04 100644 --- a/src/module_vmap/web_service/ws/Querys.class.inc +++ b/src/module_vmap/web_service/ws/Querys.class.inc @@ -15,8 +15,9 @@ require_once 'Vmap.class.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; require_once 'Query.class.inc'; require_once 'BusinessObject.class.inc'; -require_once(dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc'); -require_once(dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc'); +require_once (dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc'); +require_once (dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc'); +require_once (dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/files/Files_manager.class.inc'); require_once 'vmlib/logUtil.inc'; require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/Vm.class.inc'; @@ -52,8 +53,7 @@ class Querys extends Vmap { $this->aValues['getGroup'] = false; $this->oConnection = new Connection($this->aValues, $this->aProperties); - // error_log('$_FILES: '. print_r($_FILES, true)); - // error_log('$aValues: '. print_r($this->aValues, true)); + error_log('$_FILES: '. print_r($_FILES, true)); } /** @@ -1637,50 +1637,11 @@ class Querys extends Vmap { // Fichiers à uploader ? if (!empty($_FILES) && !empty($this->aValues['my_vitis_id'])) { - // Création du dossier contenneur - $sDirPath = $this->createElementFilesFolder($sBusinessObjectId, $this->aValues['my_vitis_id']); - if (!is_dir($sDirPath)) { - $oError = new VitisError(1, "Unable to acces to the business object direrctory :" . $sDirPath); - $aXmlRacineAttribute['status'] = 0; - $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - return $sMessage; - } - // Écriture du fichier + $oFileManager = new Files_manager($this->aProperties); foreach ($_FILES as $sName => $aFile) { - - $sDirColumnPath = $sDirPath . '/' . $sName; - if (!is_dir($sDirColumnPath)) { - mkdir($sDirColumnPath, 0777, true); - } - - // Fichiers multiples - if (is_array($aFile['name'])){ - - $this->aValues[$sName] = ""; - for ($i=0; $i < count($aFile['name']); $i++) { - - // Remplace la valeur en base par le nom du fichier - if (empty($this->aValues[$sName])) { - $this->aValues[$sName] = $aFile['name'][$i]; - } else { - $this->aValues[$sName] .= '|' . $aFile['name'][$i]; - } - - // Écrit le fichier dans son enplacement - uploadFile($sName, "", $sDirColumnPath . "/" . $aFile['name'][$i], $aFile['size'][$i], $aFile['tmp_name'][$i]); - } - - } - // Fichier simple - else { - - // Remplace la valeur en base par le nom du fichier - $this->aValues[$sName] = $aFile['name']; - - // Écrit le fichier dans son enplacement - uploadFile($sName, "", $sDirColumnPath . "/" . $aFile['name'], $aFile['size']); - } + $aUploadReturn = $oFileManager->uploadInWsDataDir('vitis', $sBusinessObjectId, $this->aValues['my_vitis_id'], $sName, 'documents'); + $this->aValues[$sName] = $aUploadReturn['field_value']; } $this->genericPut($bo_schema, $bo_table, $bo_id_field); -- GitLab