Beispiel #1
0
        } else {
            $prefix = "down_" . sha1($_SERVER['HTTP_X_URLFRAG']);
            $f = fopen(tempnam($tempdir, $prefix), "w");
        }
        fwrite($f, $postdata);
        fclose($f);
    } else {
        findSendDelete($tempdir, "up_", false);
    }
} else {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        //get data
        $postdata = file_get_contents("php://input");
        //See if we should send anything down
        if ($postdata === "RECV") {
            findSendDelete($tempdir, "down_" . sha1($url));
            $fname = $tempdir . "/up_recv_" . sha1($url);
            //Only keep one RECV poll
        } else {
            $fname = tempnam($tempdir, "up_");
            //actual data gets its own filename
        }
        //find free and write new file
        $f = fopen($fname, "w");
        fwrite($f, $magic);
        //Little-endian pack length and data
        $urlen = strlen($url);
        fwrite($f, pack('V', $urlen));
        fwrite($f, $url);
        $postdatalen = strlen($postdata);
        fwrite($f, pack('V', $postdatalen));
        } else {
            $prefix = "down_" . bin2hex($_SERVER['HTTP_X_URLFRAG']);
            $f = fopen(tempnam($tempdir, $prefix), "w");
        }
        fwrite($f, $postdata);
        fclose($f);
    } else {
        findSendDelete($tempdir, "up_", false);
    }
} else {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        //get data
        $postdata = file_get_contents("php://input");
        //See if we should send anything down
        if ($postdata === 'RECV') {
            findSendDelete($tempdir, "down_" . bin2hex($url));
            $fname = $tempdir . "/up_recv_" . bin2hex($url);
            //Only keep one RECV poll
        } else {
            $fname = tempnam($tempdir, "up_");
            //actual data gets its own filename
        }
        //find free and write new file
        $f = fopen($fname, "w");
        fwrite($f, $magic);
        //Little-endian pack length and data
        $urlen = strlen($url);
        fwrite($f, pack('V', $urlen));
        fwrite($f, $url);
        $postdatalen = strlen($postdata);
        fwrite($f, pack('V', $postdatalen));