diff --git a/src/Media/MediaController.php b/src/Media/MediaController.php index dcca40e..72175b0 100644 --- a/src/Media/MediaController.php +++ b/src/Media/MediaController.php @@ -87,7 +87,7 @@ final class MediaController public function upload(Request $req, Response $res): Response { $files = $req->getUploadedFiles(); - $uploadedFile = $files['image'] ?? null; + $uploadedFile = $files['file'] ?? $files['image'] ?? null; if ($uploadedFile === null || $uploadedFile->getError() !== UPLOAD_ERR_OK) { return $this->jsonError($res, "Aucun fichier reçu ou erreur d'upload", 400); @@ -103,7 +103,12 @@ final class MediaController return $this->jsonError($res, $e->getMessage(), 500); } - return $this->jsonSuccess($res, $url); + $res->getBody()->write(json_encode([ + 'success' => true, + 'url' => $url, + ], JSON_THROW_ON_ERROR)); + + return $res->withHeader('Content-Type', 'application/json')->withStatus(200); } /** diff --git a/views/admin/posts/form.twig b/views/admin/posts/form.twig index c902645..ff67edb 100644 --- a/views/admin/posts/form.twig +++ b/views/admin/posts/form.twig @@ -130,7 +130,20 @@ serverPath: '/admin/media/upload', fileFieldName: 'file', urlPropertyName: 'url', - statusPropertyName: 'success' + statusPropertyName: 'success', + headers: { + 'X-Requested-With': 'XMLHttpRequest' + }, + data: [ + { + name: '{{ csrf.keys.name }}', + value: '{{ csrf.name }}' + }, + { + name: '{{ csrf.keys.value }}', + value: '{{ csrf.value }}' + } + ] } } });