quote($serno)); # $sth = $db->query($sql); # $row = $sth->fetch(); # payload = $row[id] function file_archive($fpath, $path_base, $table, $payload) { global $db; $base = $_SESSION['sys']['basedir'] . 'archive'; if (!is_dir($base)) { error_log('Archivpfad '.$path_base.' nicht vorhanden'); return false; } $base .= '/' . $path_base; if (!is_dir($base)) { error_log('Dokumentenpfad nicht vorhanden'); return false; } $base .= '/'; $path = date('Y'); if (!is_dir($base.$path)) if (mkdir($base.$path) === false) { error_log('Kann Verzeichnis nicht anlegen: ' . $path); return false; } $path .= '/' . date('m'); if (!is_dir($base.$path)) if (mkdir($base.$path) === false) { error_log('Kann Verzeichnis nicht anlegen: ' . $path); return false; } $parts = pathinfo($fpath); $path .= '/' . $parts['filename']; $max = 100; for ($i=0; $i < $max; $i++) { $fname = $path; if ($i > 0) $fname .= '('.$i.')'; if (!empty($parts['extension'])) $fname .= '.' . $parts['extension']; if (!is_file($base.$fname)) { if (rename($fpath, $base.$fname) === false) { error_log('Kann Datei nicht speichern'); return false; } chmod($base.$fname, 0644); $payload_columns = ''; $payload_values = ''; if ($payload && count($payload)) { foreach ($payload as $column => $value) { $payload_columns .= $column . ','; $payload_values .= $db->quote($value) . ','; } } $sql = sprintf("INSERT INTO %s (%sdate,path,sys_user,sys_edit) VALUES (%snow(),%s,%s,now())", $table, $payload_columns, $payload_values, $db->quote($fname), $db->quote($_SESSION['sys']['login'])); $sth = $db->query($sql); return db_lastid($table); } } error_log('Kann Datei nicht anlegen'); return false; } ?>