Update createArticle-controller.php
This commit is contained in:
@@ -73,36 +73,46 @@ require_once '../validator/article-validator.php';
|
|||||||
mkdir($uploadDir, 0755, true);
|
mkdir($uploadDir, 0755, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($blocks as &$block) {
|
if (is_array($blocks)) {
|
||||||
// Base64-Format-Prüfung:
|
foreach ($blocks as &$block) {
|
||||||
if ($block['type'] === 'image' && str_starts_with($block['value'], 'data:image/')) {
|
// sicherstellen, dass 'type' und 'value' existieren:
|
||||||
|
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']);
|
||||||
$metadata = $parts[0];
|
|
||||||
$base64Data = $parts[1];
|
|
||||||
|
|
||||||
// Dateiendung ermitteln
|
// falls der String korrupt ist und kein Komma hat
|
||||||
preg_match('/data:image\/(?<extension>.*?);/', $metadata, $matches);
|
if (count($parts) < 2) {
|
||||||
$extension = $matches['extension'] ?? 'jpg';
|
continue;
|
||||||
if ($extension === 'jpeg') { $extension = 'jpg'; }
|
}
|
||||||
|
|
||||||
// Eindeutigen Dateinamen generieren
|
$metadata = $parts[0];
|
||||||
$fileName = 'img_' . uniqid() . '.' . $extension;
|
$base64Data = $parts[1];
|
||||||
$filePath = $uploadDir . $fileName;
|
|
||||||
|
|
||||||
// Datei im /uploads speichern:
|
// Dateiendung ermitteln
|
||||||
if (file_put_contents($filePath, base64_decode($base64Data)) !== false) {
|
preg_match('/data:image\/(?<extension>.*?);/', $metadata, $matches);
|
||||||
// temporären Base64-String durch den echten Pfad ersetzen
|
$extension = $matches['extension'] ?? 'jpg';
|
||||||
$block['value'] = 'uploads/' . $fileName;
|
if ($extension === 'jpeg') {
|
||||||
} else {
|
$extension = 'jpg';
|
||||||
$_SESSION["message"] = "image_upload_error";
|
}
|
||||||
header("location: ../../index.php?pfad=createArticle");
|
|
||||||
exit();
|
// Eindeutigen Dateinamen generieren
|
||||||
|
$fileName = 'img_' . uniqid() . '.' . $extension;
|
||||||
|
$filePath = $uploadDir . $fileName;
|
||||||
|
|
||||||
|
// Datei im /uploads speichern:
|
||||||
|
if (file_put_contents($filePath, base64_decode($base64Data)) !== false) {
|
||||||
|
// temporären Base64-String durch den echten Pfad ersetzen
|
||||||
|
$block['value'] = 'uploads/' . $fileName;
|
||||||
|
} else {
|
||||||
|
$_SESSION["message"] = "image_upload_error";
|
||||||
|
header("location: ../../index.php?pfad=createArticle");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user