0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; if (!$res && file_exists("../main.inc.php")) $res = @include "../main.inc.php"; if (!$res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php"; if (!$res) die("Include of main fails"); require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once __DIR__.'/class/upload_token.class.php'; $token = (string) ($_REQUEST['token'] ?? ''); $tok = BerichtUploadToken::fetchValid($db, $token); // Cache-Control: PWA-Seite NICHT cachen (immer frisch vom Server) header('Cache-Control: no-cache, no-store, must-revalidate'); header('Pragma: no-cache'); header('Expires: 0'); // POST = Datei-Upload if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_FILES['file']['tmp_name'])) { header('Content-Type: application/json; charset=utf-8'); if (!$tok) { http_response_code(403); echo json_encode(array('success' => false, 'error' => 'Token ungültig oder abgelaufen')); exit; } // Upload-Ziel über Token ermitteln (Dolibarr-Standard-Ordner) $upload_dir = $tok->getUploadDir(); if (!$upload_dir) { http_response_code(404); echo json_encode(array('success' => false, 'error' => 'Objekt nicht gefunden')); exit; } $orig = dol_sanitizeFileName($_FILES['file']['name']); $ext = strtolower(pathinfo($orig, PATHINFO_EXTENSION)); $allowed = array('jpg', 'jpeg', 'png'); if (!in_array($ext, $allowed)) { echo json_encode(array('success' => false, 'error' => 'Nur JPG/PNG erlaubt')); exit; } if (!is_dir($upload_dir)) dol_mkdir($upload_dir); $filename = 'foto_'.dol_print_date(dol_now(), '%Y%m%d_%H%M%S').'_'.uniqid().'.'.$ext; $target = $upload_dir.'/'.$filename; if (!move_uploaded_file($_FILES['file']['tmp_name'], $target)) { echo json_encode(array('success' => false, 'error' => 'Upload fehlgeschlagen')); exit; } $tok->incrementCount(); echo json_encode(array('success' => true, 'filename' => $filename)); exit; } // GET = Mobile-Upload-Seite anzeigen if (!$tok) { http_response_code(403); ?>
Dieser Upload-Link ist abgelaufen oder ungültig.
Bitte im Editor einen neuen QR-Code generieren.
fetchParentObject(); $parent_ref = $parent ? $parent->ref : '???'; $valid_min = max(1, round(($tok->expires_at - dol_now()) / 60)); ?>