Update createArticle-controller.php

This commit is contained in:
2026-06-14 12:53:46 +02:00
parent 1dbef5ca4b
commit b8e884a5aa
+14 -4
View File
@@ -73,19 +73,28 @@ require_once '../validator/article-validator.php';
mkdir($uploadDir, 0755, true); mkdir($uploadDir, 0755, true);
} }
if (is_array($blocks)) {
foreach ($blocks as &$block) { foreach ($blocks as &$block) {
// Base64-Format-Prüfung: // sicherstellen, dass 'type' und 'value' existieren:
if ($block['type'] === 'image' && str_starts_with($block['value'], 'data:image/')) { if (isset($block['type']) && isset($block['value']) && $block['type'] === 'image' && str_starts_with($block['value'], 'data:image/')) {
// Base64-String zerlegen: // Base64-String zerlegen
$parts = explode(',', $block['value']); $parts = explode(',', $block['value']);
// falls der String korrupt ist und kein Komma hat
if (count($parts) < 2) {
continue;
}
$metadata = $parts[0]; $metadata = $parts[0];
$base64Data = $parts[1]; $base64Data = $parts[1];
// Dateiendung ermitteln // Dateiendung ermitteln
preg_match('/data:image\/(?<extension>.*?);/', $metadata, $matches); preg_match('/data:image\/(?<extension>.*?);/', $metadata, $matches);
$extension = $matches['extension'] ?? 'jpg'; $extension = $matches['extension'] ?? 'jpg';
if ($extension === 'jpeg') { $extension = 'jpg'; } if ($extension === 'jpeg') {
$extension = 'jpg';
}
// Eindeutigen Dateinamen generieren // Eindeutigen Dateinamen generieren
$fileName = 'img_' . uniqid() . '.' . $extension; $fileName = 'img_' . uniqid() . '.' . $extension;
@@ -103,6 +112,7 @@ require_once '../validator/article-validator.php';
} }
} }
unset($block); unset($block);
}
// Aktualisiertes Array wieder in JSON konvertieren // Aktualisiertes Array wieder in JSON konvertieren
$finalContent = json_encode($blocks, JSON_UNESCAPED_UNICODE); $finalContent = json_encode($blocks, JSON_UNESCAPED_UNICODE);