From c1ead938f264d9632c4bb9a6ff7d67f41708203a Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Wed, 03 Jan 2018 17:37:43 +0100
Subject: [PATCH] [test] setup limiti files con conversione stringa in byte
---
src/UploadFile/SetupUpload.class.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/src/UploadFile/SetupUpload.class.php b/src/UploadFile/SetupUpload.class.php
index 75b32d0..8bd941a 100644
--- a/src/UploadFile/SetupUpload.class.php
+++ b/src/UploadFile/SetupUpload.class.php
@@ -8,6 +8,7 @@
* javascript di gestione del plupload
*
* @author Cristiano Magro
+ *
*/
class SetupUpload {
@@ -55,8 +56,16 @@
return $this->sizeLimitFileUpload;
}
+ /**
+ * Dimensione massima del singolo file caricato
+ *
+ * Accetta sia '1024' che '1 kb' effettuando la conversione interna
+ * necessaria.
+ * @param string $x sia '1024' che '1 kb'
+ * @return \SetupUpload
+ */
public function setSizeLimitFile($x) {
- $this->sizeLimitFileUpload = $x;
+ $this->sizeLimitFileUpload = self::str2Bytes($x);
return $this;
}
@@ -107,12 +116,25 @@
return $this;
}
+ /**
+ * Restituisce il numero massimo di file previsti nella coda
+ * @return integer Max numero file
+ */
public function getNumMaxFiles() {
return $this->numMaxFiles;
}
- public function setNumMaxFiles($x) {
- $this->numMaxFiles = $x;
+ /**
+ * Viene impostato il numero massimo di file caricabili
+ * @param integer $numero
+ * @return \SetupUpload fluent style
+ */
+ public function setNumMaxFiles($numero) {
+ if (!is_integer($numero) || $numero <= 0) {
+ throw new UploadFile_Exc();
+ }
+
+ $this->numMaxFiles = $numero;
return $this;
}
@@ -120,8 +142,16 @@
return $this->sizeMaxFilesByte;
}
+ /**
+ * Dimensione Totale massima dei file caricabili
+ *
+ * Accetta sia '1024' che '1 kb' effettuando la conversione interna
+ * necessaria.
+ * @param string $x sia '1024' che '1 kb'
+ * @return \SetupUpload
+ */
public function setSizeMaxFilesByte($x) {
- $this->sizeMaxFilesByte = $x;
+ $this->sizeMaxFilesByte = self::str2Bytes($x);
return $this;
}
@@ -164,4 +194,24 @@
return json_encode($dati);
}
+ /**
+ * Converte una stringa nei corrispondenti bytes.
+ *
+ * 1 Mb = 1024^2
+ *
+ * @param string $strSize Stringa da convertire
+ * @return integer
+ */
+ public static function str2Bytes($strSize) {
+ $strUnit = strtolower($strSize);
+ $strUnit = preg_replace('/[^a-z]/', '', $strUnit);
+
+ $value = intval(preg_replace('/[^0-9]/', '', $strSize));
+
+ $Units = array('b' => 0, 'kb' => 1, 'mb' => 2, 'gb' => 3, 'tb' => 4);
+ $Exponent = isset($Units[$strUnit]) ? $Units[$strUnit] : 0;
+
+ return ($value * pow(1024, $Exponent));
+ }
+
}
--
Gitblit v1.8.0