aboutsummaryrefslogtreecommitdiff
path: root/file/index.php
blob: 9b1f2505f9cfe4127d201f36988e82dc47882d94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

$keys = array_keys($_GET);

if (isset($keys[0])) {
    $id = $keys[0];
} else {
    die();
}

if (str_contains($id, "/") || str_contains($id, ".")) {
    die();
}

if (trim($id) === "") {
    die();
}

$data = json_decode(file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/data/files.json"), true);

$name = $id . ".bin";
foreach ($data as $item) {
    if ($item["uuid"] === $id) {
        $name = $item["name"];
    }
}

$file = $_SERVER['DOCUMENT_ROOT'] . "/data/uploads/" . $id;

header('Content-Description: File Transfer');
header('Content-Type: ' . mime_content_type($file));
header('Content-Disposition: filename="' . $name . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
ob_clean();
flush();
readfile($file);
exit;