예제 #1
0
    echo "\t\t\t</tr>\n";
    for ($i = 0; $i < count($_FILES['images']['name']); $i++) {
        echo "\t\t\t<tr>\n";
        $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 {
예제 #2
0
use Prosperia\Tokn\ToknFile;
use Prosperia\Stor;
use Prosperia\Stor\StorFromFile;
use Prosperia\Thumbnail;
if (!isset($_REQUEST['token']) || empty($_REQUEST['token']) || !isset($_REQUEST['key']) || empty($_REQUEST['key'])) {
    header("HTTP/1.1 400 Bad Request");
    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;