From e7ece1ed130717044215797e292f368952f546c5 Mon Sep 17 00:00:00 2001 From: NOrtmann1 Date: Sun, 14 Jun 2026 22:47:05 +0200 Subject: [PATCH] Update updateArticle-controller.php --- php/controller/updateArticle-controller.php | 24 +++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/php/controller/updateArticle-controller.php b/php/controller/updateArticle-controller.php index 6f091c9..d907271 100644 --- a/php/controller/updateArticle-controller.php +++ b/php/controller/updateArticle-controller.php @@ -69,7 +69,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { $cleanedTags = implode(',', $cleanedTags); } - // ----------------- Base64-Bilder speichern ----------------- + // --------------------------------------- Base64-Bilder speichern --------------------------------------------- $blocks = json_decode($content, true); $uploadDir = __DIR__ . '/../../uploads/'; @@ -77,23 +77,35 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { mkdir($uploadDir, 0755, true); } - // --- Verwaiste Bilder löschen über die JS-Löschliste: + // ----------------- Gelöschte Bilder über die JS-Löschliste entfernen ----------------- if (isset($_POST['deleted_images'])) { $deletedImages = json_decode($_POST['deleted_images'], true); + + // Wir ermitteln den physisch echten, absoluten Pfad zum uploads-Ordner auf der Festplatte + $uploadDir = realpath(__DIR__ . '/../../uploads') . DIRECTORY_SEPARATOR; + if (is_array($deletedImages)) { foreach ($deletedImages as $imagePath) { - // Sicherheit: Nur den reinen Dateinamen filtern (Schutz vor Manipulation) + // Nur den reinen Dateinamen heraustrennen (z.B. img_65a123.jpg) $filename = basename($imagePath); $fullDeletePath = $uploadDir . $filename; - if (file_exists($fullDeletePath) && is_file($fullDeletePath)) { - unlink($fullDeletePath); + // Debugging & Löschen: + if (file_exists($fullDeletePath)) { + // Versuchen zu löschen. Wenn es fehlschlägt, Fehlermeldung erzwingen + if (!@unlink($fullDeletePath)) { + $error = error_get_last(); + die("Datei existiert, aber PHP darf sie nicht löschen! Grund: " . $error['message']); + } + } else { + // Wenn PHP die Datei an diesem Pfad nicht findet, brechen wir zum Debuggen ab + // die("PHP findet die Datei nicht unter dem Pfad: " . $fullDeletePath); } } } } - // --- NEU hinzugefügte Base64-Bilder: + // ----------------------- NEU hinzugefügte Base64-Bilder: -------------------------- if (is_array($blocks)) { foreach ($blocks as &$block) { // Prüfen, ob der Block ein Bild ist und ein NEUES Bild (Base64-Format) enthält