From bbb5de3900713e6432921533df4e0c7aa1e98517 Mon Sep 17 00:00:00 2001 From: Lukas Plevac Date: Fri, 29 Dec 2023 08:41:04 +0000 Subject: [PATCH] Added support for chunk upload --- web/API/observations.php | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/web/API/observations.php b/web/API/observations.php index cdc959b..08f5e7d 100644 --- a/web/API/observations.php +++ b/web/API/observations.php @@ -132,14 +132,26 @@ $adir = __DIR__ . "/../ARTEFACTS/" . $params["id"]; + $fname = basename($params["fname"]); + mkdir($adir, 0777, true); - - $artefacts = $obs->artefacts->get(); - foreach ($_FILES as $file) { - move_uploaded_file($file["tmp_name"], $adir . "/" . $file["name"]); - $artefacts[] = "/ARTEFACTS/{$params['id']}/{$file['name']}"; + + // chunk upload file + if ($params["offset"] == 0) { + // get current artifasts + $artefacts = $obs->artefacts->get(); + + $artefacts[] = "/ARTEFACTS/{$params['id']}/{$fname}"; + + $obs->artefacts->set($artefacts); + $obs->commit(); } - $obs->artefacts->set($artefacts); - $obs->commit(); + // file pointer + $ifp = fopen($adir . "/" . $fname, 'ab'); + + fwrite($ifp, $params["data"]); + + // clean up the file resource + fclose($ifp); }