/**
  * Speichert Daten in eine Datei
  * @param $data
  */
 function put($data)
 {
     $dms = new dms();
     if ($dms->load($this->dms_id)) {
         $dms->version = $dms->version++;
         $pos = mb_strrpos($dms->name, '.') + 1;
         if ($pos > 1) {
             $ext = '.' . mb_substr($dms->name, $pos);
         } else {
             $ext = '';
         }
         $filename = uniqid() . $ext;
         $dms->version++;
         $dms->insertamum = date('Y-m-d H:i:s');
         $dms->insertvon = $this->getUser();
         $dms->filename = $filename;
         if ($dms->save(true)) {
             if (file_put_contents(DMS_PATH . $filename, $data)) {
                 if (!chgrp(DMS_PATH . $filename, 'dms')) {
                     echo 'CHGRP failed';
                 }
                 if (!chmod(DMS_PATH . $filename, 0774)) {
                     echo 'CHMOD failed';
                 }
                 exec('sudo chown wwwrun ' . $filename);
                 $dms->save(false);
             } else {
                 throw new Sabre_DAV_Exception_FileNotFound('Failed to Write File');
             }
         } else {
             throw new Sabre_DAV_Exception_FileNotFound('Failed ' . $dms->errormsg);
         }
     }
 }
 * Die Dokumente werden entweder base64 kodiert in der Datenbank in der Spalte inhalt gespeichert
 * oder im Filesystem, in diesem Fall ist die Akte mit einer DMS ID verknuepft in welcher der Dateiname steht.
 */
require_once '../config/vilesci.config.inc.php';
require_once '../include/dms.class.php';
require_once '../include/benutzerberechtigung.class.php';
require_once '../include/functions.inc.php';
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) {
    die('Keine Berechtigung');
}
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $dms = new dms();
    if (!$dms->load($_GET['id'])) {
        die('Kein Dokument vorhanden');
    }
    $filename = DMS_PATH . $dms->filename;
    if (!isset($_GET['notimeupdate'])) {
        $dms->touch($dms->dms_id, $dms->version);
    }
    if (file_exists($filename)) {
        if ($handle = fopen($filename, "r")) {
            if ($dms->mimetype == '') {
                $dms->mimetype = 'application/octetstream';
            }
            header('Content-type: ' . $dms->mimetype);
            header('Content-Disposition: inline; filename="' . $dms->name . '"');
            header('Content-Length: ' . filesize($filename));
            while (!feof($handle)) {
示例#3
0
/**
 * Erstellt das Formular zum Ändern der Kategorie von Dokumenten
 * @param $dms_id ID des Dokuments
 */
function drawChangeKategorie($dms_id, $page = NULL, $dpp = NULL)
{
    $dms = new dms();
    $dms->load($dms_id);
    $allKategorien = new dms();
    $allKategorien->getAllKategories();
    if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') {
        echo '<form action="' . $_SERVER['PHP_SELF'] . '?chkatID=' . $dms_id . '&searching=true&searchstring=' . $_REQUEST['searchstring'];
        if (!is_null($page)) {
            echo '&page=' . $page;
        }
        if (!is_null($dpp)) {
            echo '&dpp=' . $dpp;
        }
        echo '" method="POST">';
    } else {
        echo '<form action="' . $_SERVER['PHP_SELF'] . '?chkatID=' . $dms_id . '&kategorie_kurzbz=' . $dms->kategorie_kurzbz;
        if (!is_null($page)) {
            echo '&page=' . $page;
        }
        if (!is_null($dpp)) {
            echo '&dpp=' . $dpp;
        }
        echo '" method="POST">';
    }
    echo '
		<select name="kategoriez">
			<option value="auswahl">-- Bitte Auswählen --</option>';
    foreach ($allKategorien->result as $kategorienResult) {
        $selected = '';
        if ($kategorienResult->kategorie_kurzbz == $dms->kategorie_kurzbz) {
            $selected = 'selected';
        }
        echo '<option ' . $selected . ' value="' . $kategorienResult->kategorie_kurzbz . '">' . $kategorienResult->bezeichnung . ' [' . $kategorienResult->kategorie_kurzbz . ']</option>';
    }
    echo '</select>
		  <input type="hidden" name="action" value="chkat">
		  <input type="hidden" name="dms_id" value="' . $dms_id . '">';
    if (!is_null($page)) {
        echo '<input type="hidden" name="page" value="' . $page . '">';
    }
    if (!is_null($dpp)) {
        echo '<input type="hidden" name="dpp" value="' . $dpp . '">';
    }
    echo '<input type="submit" class="buttondesign" name="chkat_save" value="Speichern"></form>';
}
示例#4
0
function OutputData($akte)
{
    if ($akte->inhalt != '') {
        //Header fuer Bild schicken
        header("Content-type: {$akte->mimetype}");
        header('Content-Disposition: attachment; filename="' . $akte->titel . '"');
        echo base64_decode($akte->inhalt);
    } elseif ($akte->dms_id != '') {
        $dms = new dms();
        if (!$dms->load($akte->dms_id)) {
            die('Kein Dokument vorhanden');
        }
        $filename = DMS_PATH . $dms->filename;
        if (!isset($_GET['notimeupdate'])) {
            $dms->touch($dms->dms_id, $dms->version);
        }
        if (file_exists($filename)) {
            if ($handle = fopen($filename, "r")) {
                if ($dms->mimetype == '') {
                    $dms->mimetype = 'application/octetstream';
                }
                header('Content-type: application/octetstream');
                header('Content-Disposition: inline; filename="' . $dms->name . '"');
                header('Content-Length: ' . filesize($filename));
                while (!feof($handle)) {
                    echo fread($handle, 8192);
                }
                fclose($handle);
            } else {
                echo 'Fehler: Datei konnte nicht geoeffnet werden';
            }
        } else {
            echo 'Die Datei existiert nicht';
        }
    }
}