<?php
include_once '../session.php';
header("Content-type: application/json; charset=UTF-8");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
use Uploady\Handler\UploadHandler;
$utilty = new Farisc0de\PhpFileUploading\Utility();
$upload = new Farisc0de\PhpFileUploading\Upload($utilty);
$dataCollection = new Uploady\DataCollection();
$browser = new Wolfcast\BrowserDetection();
$role = new Uploady\Role($db, $user);
$handler = new UploadHandler($db);
$upload->setSiteUrl(SITE_URL);
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$upload->generateUserID();
$upload->createUserCloud("../" . UPLOAD_FOLDER);
$upload->setUploadFolder([
"folder_name" => $upload->getUserCloud(UPLOAD_FOLDER),
"folder_path" => realpath($upload->getUserCloud("../" . UPLOAD_FOLDER)),
]);
$upload->enableProtection();
$upload->setSizeLimit($role->get($_SESSION['user_role'])->size_limit);
$upload->generateFileID();
$upload->setUpload(new Farisc0de\PhpFileUploading\File($_FILES['file'], $utilty));
if (!$upload->checkIfNotEmpty()) {
http_response_code(400);
echo json_encode([
"error" => $lang["general"]['file_is_empty'],
]);
exit();
}
$upload->hashName();
if (!$upload->checkSize()) {
http_response_code(400);
echo json_encode([
"error" => $lang["general"]['file_is_too_large'],
]);
exit();
}
if (
!$upload->checkForbidden()
) {
http_response_code(400);
echo json_encode([
"error" => $lang["general"]['file_name_is_forbidden'],
]);
exit();
}
if (
!$upload->checkExtension()
) {
http_response_code(400);
echo json_encode([
"error" => $lang["general"]['file_type_is_not_allowed'],
]);
exit();
}
if (
!$upload->checkMime()
) {
http_response_code(400);
echo json_encode([
"error" => $lang["general"]['file_mime_type_is_not_allowed'],
]);
exit();
}
if ($upload->upload()) {
$handler->addFile(
$upload->getFileID(),
$upload->getUserID(),
$upload->getJSON(),
json_encode(
[
"ip_address" => $dataCollection->collectIP(),
"country" => $dataCollection->idendifyCountry(),
"browser" => $dataCollection->getBrowser($browser),
"os" => $dataCollection->getOS()
]
),
json_encode(
[
"delete_at" => [
"downloads" => 0,
"days" => 0,
],
]
)
);
}
$files = $upload->getFiles();
http_response_code(200);
echo json_encode($files[0]);
}
|