From fe25829458d3a724d1bc5ecbfab3d48dc4929845 Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Tue, 03 Apr 2018 12:24:20 +0200
Subject: [PATCH] aggiornamento versione phpunit
---
src/Vola/UploadFile/FileUp.php | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 167 insertions(+), 11 deletions(-)
diff --git a/src/Vola/UploadFile/FileUp.php b/src/Vola/UploadFile/FileUp.php
index e96add0..166988a 100644
--- a/src/Vola/UploadFile/FileUp.php
+++ b/src/Vola/UploadFile/FileUp.php
@@ -21,6 +21,9 @@
private $request;
private $beanFile;
+
+ /* @var $logger WrapLog */
+ private $logger;
private $pathMap;
public static function create($pathMap = null)
@@ -33,23 +36,48 @@
return $instance;
}
+ public function setLogger($logger)
+ {
+ $this->logger = WrapLog::create($logger);
+ return $this;
+ }
+
/**
- * Imposto i path di destinazione del file
- * @param string $cfgClassName nome della classe con i parametri di configurazione da utilizzare
- * @return \Upload_FileUp
+ * Imposto i path di destinazione del file.
+ *
+ * Ricavo dalla mappa il path su cui memorizzare il file corrente, sulla base del parametro
+ * passato nella Request. Se non trovo corrispondenza viene lanciata eccezione.
+ * @param array $cfgPathMap elenco percorsi validi per la memorizzazione.
+ * @return \Upload_FileUp fluent style
* @throws Upload_Exc_Error
*/
- public function setUploadPath(array $cfgPathKey)
+ public function decodeUploadPath(array $cfgPathMap)
{
+ $this->pathMap = $cfgPathMap;
+ $key = $this->getRequestValue('dirDestinazione', null);
- $key = $this->request->dirDestinazione;
- if (isset($cfgPathKey[$key])) {
- $path = $cfgPathKey[$key];
- $this->request->pathForUpload = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT') . '/../' . $path;
- } else {
- throw new Upload_Exc_Error('Decodifica chiave percorso non definita');
- }
+ $path = $this->getMapValue($key);
+ $pathDocumentRoot = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
+
+ //genero il percorso reale dove andrà salvato il file
+ $this->request->pathForUpload = $pathDocumentRoot. '/../' . $path;
return $this;
+ }
+
+ /**
+ * Ritorno il valore della Request preso dalla chiamata.
+ *
+ * Se non è definito ritorno il valore di default|null
+ * @param string $nomeParam
+ * @param string $default
+ * @return mixed null|valore chiamata
+ */
+ public function getRequestValue($nomeParam, $default = null)
+ {
+ if (isset($this->request->{$nomeParam})) {
+ return $this->request->{$nomeParam};
+ }
+ return $default;
}
/**
@@ -79,6 +107,120 @@
$this->request->rand_value = $_REQUEST['rand_value'];
return $this;
+ }
+
+ public function getRequestPathForUpload()
+ {
+ return $this->request->pathForUpload;
+ }
+
+ /**
+ * Ricostruisco i dati del BEAN del file caricato sul sistema
+ */
+ public function getFileBean()
+ {
+ if (!empty($_FILES)) {
+ $this->setTempNomeFile($_FILES['file']['tmp_name']);
+ $this->setOrigNomeFile($_FILES['file']['name']);
+ $this->setSizeFile($_FILES['file']['size']);
+ } else {
+ $this->setOrigNomeFile('');
+ }
+ return $this;
+ }
+
+ public function setTempNomeFile($x)
+ {
+ $this->beanFile->tempNomeFile = $x;
+ }
+
+ public function setOrigNomeFile($x)
+ {
+ $this->beanFile->origNomeFile = $x;
+ }
+
+ public function setSizeFile($x)
+ {
+ $this->beanFile->sizeFile = $x;
+ }
+
+ public function getTempNomeFile()
+ {
+ return $this->beanFile->tempNomeFile;
+ }
+
+ /**
+ * Ritorno l'estensione del file caricato dall'utente
+ * @return string Estenzione del file
+ */
+ public function getOrigNomeFileExt()
+ {
+ $path_info = pathinfo($this->getOrigNomeFile());
+ return $path_info['extension'];
+ }
+
+ public function getOrigNomeFile()
+ {
+ return $this->beanFile->origNomeFile;
+ }
+
+ public function getSizeFile()
+ {
+ return $this->beanFile->sizeFile;
+ }
+
+ /**
+ * Il tipo di operazione richiesta nella chiamata.
+ * Per selezionare il case switch da attivare
+ * @return string operazione da attivare
+ */
+ public function getOperazione()
+ {
+ return $this->request->operazione;
+ }
+
+ /**
+ * ricostruisco il nome del file da registrare su disco.
+ *
+ * Vengono ripuliti i caratteri strani e le lettere accentate.
+ * @return string
+ */
+ public function getNomeFileDisco()
+ {
+ $rand = $this->getRequestRandomValue();
+ $nome = $this->getOrigNomeFile();
+ return self::getNomeFile($rand, $nome);
+ }
+
+ public function getRequestRandomValue()
+ {
+ return $this->request->rand_value;
+ }
+
+ /**
+ * ricostruisco il nome del file da registrare su disco.
+ *
+ * Vengono ripuliti i caratteri strani e le lettere accentate.
+ * @param type $rand
+ * @param string $nome
+ * @return string
+ */
+ public static function getNomeFile($rand, $nome)
+ {
+ return $rand . "_" . FileUpload::clearNomeFile($nome);
+ }
+
+ /**
+ * @deprecated 0.3.2 utilizzare toString
+ */
+ public function stampaTutto()
+ {
+ if ($this->logger instanceof WrapLog) {
+ $this->logger->debug($this->request);
+ $this->logger->debug($this->beanFile);
+ } else {
+ error_log('errorlog non attivo');
+ }
}
public function __toString()
@@ -116,5 +258,19 @@
}
}
+ /**
+ * Decodifico mediante la mappa il percorso da utilizzare.
+ * @param $chiave della Request per il percorso
+ * @return mixed path associato
+ * @throws Upload_Exc_Error
+ * @since 0.3.2
+ */
+ protected function getMapValue($chiave)
+ {
+ if (!isset($cfgPathMap[$chiave])) {
+ throw new Upload_Exc_Error('Decodifica chiave percorso non definita');
+ }
+ return $cfgPathMap[$chiave];
+ }
}
--
Gitblit v1.8.0