Classi per la configurazione upload
Cristiano Magro
2018-01-16 1f9243993367c95b49cc1d18d5fb86693342a92d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
/**
 * Created by PhpStorm.
 * User: Cristiano Magro
 * Date: 16/01/2018
 * Time: 16:57
 * @package Plupload
 * @since v0.3.2
 */
 
/**
 * Class Upload_FileUp manipolazione dettagli file caricato dagestire.
 *
 * Si tratta di un wrapper per gestire il file appena caricato.
 *
 */
class Upload_FileUp
{
 
    const EMPTY_OBJ = "vuoto";
 
    private $request;
    private $beanFile;
    private $pathMap;
 
    public static function create($pathMap = null)
    {
        $instance = new self();
        $instance->request = new stdClass();
        $instance->beanFile = new stdClass();
        $instance->pathMap = $pathMap;
 
        return $instance;
    }
 
    /**
     * Imposto i path di destinazione del file
     * @param string $cfgClassName nome della classe con i parametri di configurazione da utilizzare
     * @return \Upload_FileUp
     * @throws Upload_Exc_Error
     */
    public function setUploadPath(array $cfgPathKey)
    {
 
        $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');
        }
        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
     * @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);
        }
    }
 
 
}