]> jfr.im git - uguu.git/blobdiff - src/static/php/upload.php
Update checkfiles.sh
[uguu.git] / src / static / php / upload.php
index e736a8543c205dec60c7ff75273ff36223785fee..698cf1ed37e7b212844093fc6a67945822cac53b 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
     /**
      * Uguu
      *
      * You should have received a copy of the GNU General Public License
      * along with this program.  If not, see <https://www.gnu.org/licenses/>.
      */
-    
-    function checkConfig()
-    {
-        if (!file_exists(__DIR__ . '/../config.json')) {
-            throw new Exception('Cant read settings file.', 500);
-        }
-        try {
-            $settings = json_decode(
-               file_get_contents(__DIR__ . '/../config.json'),
-               true,
-            );
-            if ($settings['PHP_ERRORS']) {
-                error_reporting(E_ALL);
-                ini_set('display_errors', 1);
-            }
-        }
-        catch (Exception) {
-            throw new Exception('Cant populate settings.', 500);
-        }
-    }
-    
-    checkConfig();
+
     require_once __DIR__ . '/../vendor/autoload.php';
-    
-    use Pomf\Uguu\UploadGateway;
-    
+
+    use Pomf\Uguu\Classes\Upload;
+    use Pomf\Uguu\Classes\Response;
+
+    /**
+     * 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 {
-        (new UploadGateway())->handleFile($_GET['output'], $_FILES['files']);
-    }
-    catch (Exception $e) {
-        throw new Exception($e->getMessage(), 500);
+        $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 {
+    handleFile($resType, $_FILES['files']);
+} catch (Exception $e) {
+    $response->error($e->getCode(), $e->getMessage());
+}