--- /dev/null
+<?php
+
+# tmp_path
+# path_base
+# table_name
+# column_name = payload
+# function archive_file($fpath, $serno)
+
+# $sql = sprintf("SELECT id FROM aeyo_scooter WHERE serno = %s",
+# $db->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;
+}
+
+?>
\ No newline at end of file