Example #1
0
function doUpload()
{
    global $sage_data_dir;
    $filename = "";
    //if ((!isset($_REQUEST["DateiName"])) || (@$_REQUEST["DateiName"] == "")) {
    if (@$_REQUEST["DateiName"] != "") {
        $filename = $_REQUEST["DateiName"];
    } else {
        $filename = $_FILES["userfile"]["name"];
    }
    /*
        $filename = quotemeta($filename);
    
        if (strstr($filename, "/") || strstr($filename, "\\")) {
            fehlerausgabe("Kann $newname nicht anlegen: Ungültiger Name");
            return false;
        }
    */
    //  Verzeichniseintrag holen
    $path = new Path();
    if (!$path->selectByName($_SESSION["path"])) {
        fehlerausgabe("Kann nicht hochladen: Verzeichnis existiert nicht");
        return false;
    }
    // ACL für das Verzeichnis holen
    $acl = $_SESSION["user"]->getACLByPath($path->pathname);
    if ($acl->write_path != "1") {
        fehlerausgabe("Kann nicht hochladen: Zugriff verweigert");
        return false;
    }
    $file = new File();
    if ($file->selectByPathIDAndName($path->path_id, $filename)) {
        fehlerausgabe("Kann nicht hochladen: Datei existiert schon");
        return false;
    }
    $file->path_id = $path->path_id;
    $file->loginname = $_SESSION["user"]->loginname;
    $file->filename = $filename;
    $file->description = @$_REQUEST["Beschreibung"];
    $file->insert_at = "NOW()";
    $file->modified_at = "NOW()";
    if ($file->insert()) {
        move_uploaded_file($_FILES["userfile"]["tmp_name"], $sage_data_dir . $path->pathname . "/" . $filename);
        redirectTo($_SERVER["PHP_SELF"] . "?cmd=ls");
    } else {
        fehlerausgabe("Kann nicht hochladen: Einf&uumlgen in Datenbank fehlgeschlagen");
        return false;
    }
}