request = new stdClass(); $instance->beanFile = new stdClass(); $instance->pathMap = $pathMap; return $instance; } /** * 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 decodeUploadPath(array $cfgPathMap) { $this->pathMap = $cfgPathMap; $key = $this->getRequestValue('dirDestinazione', null); $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; } /** * Recupero i parametri passati in GET nella chiamata. * * Costruisco una request con i parametri standard della chiamata: ope|dest|rand_value * @return \Upload_FileUp * @deprecated 0.3.2 usare readRequest(); */ public function getParametri() { $this->readRequest(); return $this; } /** * Recupero i parametri passati in GET nella chiamata. * * Costruisco una request con i parametri standard della chiamata: ope|dest|rand_value * @return \Upload_FileUp * @since 0.3.2 */ public function readRequest() { $this->request->operazione = $_REQUEST['ope']; $this->request->dirDestinazione = $_REQUEST['dest']; $this->request->rand_value = $_REQUEST['rand_value']; return $this; } public function __toString() { return $this->toString(); } /** * Creo una stringa della struttura interna per la stampa sul logger. * * @return mixed|string struttura interna per il log */ public function toString() { $text = "Richiesta: " . $this->convertToString($this->request) . PHP_EOL; $text .= "Bean: " . $this->convertToString($this->beanFile); return $text; } /** * Converto la struttura in una stringa per la stamapa. * * Se la struttura e' vuota ritorno "vuota" * @param stdClass $data struttura dati * @return string conversione della struttura */ private function convertToString(stdClass $data) { //effettuo il cast ad array per testare se la classe e' vuota $tmp = (array)$data; if (empty($tmp)) { return self::EMPTY_OBJ; } else { return print_r($data, true); } } /** * 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]; } }