$allowed_types = array('image/jpeg', 'image/png', 'image/gif');
        if (in_array($_FILES['images']['type'][$i], $allowed_types, true)) {
            $token = new ToknData(generateRandomChars(8), str_shuffle(sha1(time())));
            $stor = new Stor(new StorFromData($_FILES['images']['name'][$i], $_FILES['images']['type'][$i], file_get_contents($_FILES['images']['tmp_name'][$i])));
            if ($stor->getSize() !== $_FILES['images']['size'][$i]) {
                throw new Exception("Content and content size mismatch");
            }
            $token->write();
            $stor->write(new StorToFile("var/stor/" . $token->getReference()));
            $retrieve_url = str_replace(basename(__FILE__), "g/" . $token->getName(), selfURL());
            $thumbnail = new Thumbnail($stor);
            $thumbnail_url = str_replace(basename(__FILE__), "t/" . $token->getName(), selfURL());
            $delete_url = str_replace(basename(__FILE__), "d/" . $token->getName() . "/" . $stor->getSecretKey(), selfURL());
            echo "\t\t\t\t<td>" . $_FILES['images']['name'][$i] . "</td>\n";
            echo "\t\t\t\t<td style=\"color: darkgreen; font-weight: bold;\">Successfully uploaded</td>\n";
            echo "\t\t\t\t<td><a href=\"{$thumbnail_url}\" target=\"_blank\">" . $thumbnail->html() . "</a></td>\n";
            echo "\t\t\t\t<td><a href=\"{$retrieve_url}\" target=\"_blank\">{$retrieve_url}</a></td>\n";
            echo "\t\t\t\t<td><a href=\"{$delete_url}\" target=\"_blank\">{$delete_url}</a></td>\n";
        } else {
            echo "\t\t\t\t<td>" . $_FILES['images']['name'][$i] . "</td>\n";
            echo "\t\t\t\t<td style=\"color: red; font-weight: bold;\">Won't upload</td>\n";
            echo "\t\t\t\t<td colspan=\"3\">" . "Type <i>" . $_FILES['images']['type'][$i] . "</i> is not allowed." . "</td>\n";
        }
        echo "\t\t\t</tr>\n";
    }
    echo "\t\t</table>\n";
    echo "\t\t<span style=\"color: darkgreen; font-weight: bold;\">Uploading finished.</span><br />\n";
} else {
    ?>
        <form method="POST" action="index.php" enctype="multipart/form-data">
            <label for="images[]">Images to upload: <small>(you can select multiple files)</small></label>
    echo "<span style=\"color: red; font-weight: bold; font-size: 24pt;\">400 Bad Request</span><br />";
    echo "<br />";
    echo "Your browser sent a request that could not be understood.";
    exit;
}
if (file_exists("var/tokn/" . $_REQUEST['token'])) {
    $token = new ToknFile($_REQUEST['token']);
    if (file_exists("var/stor/" . $token->getReference())) {
        $stor = new Stor(new StorFromFile("var/stor/" . $token->getReference()));
        if ($_REQUEST['key'] == $stor->getSecretKey()) {
            $thumbnail = new Thumbnail($stor);
            unlink("var/stor/" . $token->getReference());
            unlink("var/tokn/" . $token->getName());
            echo "<span style=\"color: red; font-weight: bold; font-size: 24pt;\">File deleted</span><br />";
            echo "<br />";
            echo $thumbnail->html();
            echo "<br />";
            echo "The image you wanted delete has been successfully deleted from the server.";
            exit;
        } else {
            header("HTTP/1.1 403 Forbidden");
            echo "<span style=\"color: red; font-weight: bold; font-size: 24pt;\">403 Forbidden</span><br />";
            echo "<br />";
            echo "You don't have permission to access the requested resource.";
            exit;
        }
    } else {
        header("HTTP/1.1 410 Gone");
        echo "<span style=\"color: red; font-weight: bold; font-size: 24pt;\">410 Gone</span><br />";
        echo "<br />";
        echo "The requested URL is no longer available on this server.";