]> jfr.im git - uguu.git/blobdiff - src/static/php/upload.php
Update checkfiles.sh
[uguu.git] / src / static / php / upload.php
index a2cb5190875e941c272aee1895a0f97905e0adaa..698cf1ed37e7b212844093fc6a67945822cac53b 100644 (file)
@@ -1,32 +1,73 @@
 <?php
 
-/**
- * Uguu
- *
- * @copyright Copyright (c) 2022 Go Johansson (nokonoko) <neku@pomf.se>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- */
+    /**
    * Uguu
    *
    * @copyright Copyright (c) 2022 Go Johansson (nokonoko) <neku@pomf.se>
    *
    * This program is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program.  If not, see <https://www.gnu.org/licenses/>.
    */
 
-error_reporting(0);
+    require_once __DIR__ . '/../vendor/autoload.php';
 
-require_once __DIR__ . '/../vendor/autoload.php';
+    use Pomf\Uguu\Classes\Upload;
+    use Pomf\Uguu\Classes\Response;
 
-use Pomf\Uguu\UploadGateway;
+    /**
+     * It takes a string and an array as arguments, creates a new Upload object,
+     * calls the reFiles method on the Upload object, calls the fingerPrint method on
+     * the Upload object, calls the uploadFile method on the Upload object,
+     * calls the send method on the Upload object, and calls the error method on the
+     * Upload object
+     *
+     * @param $outputFormat string The format of the output, json or xml
+     * @param $files        array The file to be uploaded, which is an array.
+     *
+     * @throws \Exception
+     */
+function handleFile(string $outputFormat, array $files): void
+{
+    $fCount = count($files['size']);
+    $upload = new Upload($outputFormat);
+    $files = $upload->reFiles($files);
+    try {
+        $upload->fingerPrint($fCount);
+        $res = [];
+        foreach ($files as $ignored) {
+            $res[] = $upload->uploadFile();
+        }
+        if (!empty($res)) {
+            $upload->send($res);
+        }
+    } catch (Exception $e) {
+        $upload->error(500, $e->getMessage());
+    }
+}
+
+    $response = new Response('json');
+
+if (!isset($_FILES['files']) or empty($_FILES['files'])) {
+    $response->error(400, 'No input file(s)');
+}
+if (isset($_GET['output']) and !empty($_GET['output'])) {
+    $resType = strtolower(preg_replace('/[^a-zA-Z]/', '', $_GET['output']));
+} else {
+    $resType = 'json';
+}
 
 try {
-    (new UploadGateway())->handleFile($_GET['output'], $_FILES['files']);
+    handleFile($resType, $_FILES['files']);
 } catch (Exception $e) {
-    throw new Exception($e->getMessage(), 500);
+    $response->error($e->getCode(), $e->getMessage());
 }