From 2c47085b27253c4ad2d062d15c18c3a8c7591298 Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 10 May 2026 13:50:30 +0200 Subject: =?UTF-8?q?mysqldump,=20t=C3=A9l=C3=A9chargement=20d'un=20.sql=20e?= =?UTF-8?q?t=20stockage=20des=20sauvegardes=20dans=20/var/backups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/MaintenanceController.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/controller/MaintenanceController.php') diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php index 3b804fc..fca45f1 100644 --- a/src/controller/MaintenanceController.php +++ b/src/controller/MaintenanceController.php @@ -5,6 +5,7 @@ declare(strict_types=1); use Doctrine\ORM\EntityManager; use App\Entity\log; +use Symfony\Component\Process\Exception\ProcessFailedException; class MaintenanceController { @@ -47,4 +48,22 @@ class MaintenanceController } die; } + + static public function getLastDump(EntityManager $entityManager): void + { + try{ + $file_path = Backup::mySQLdump($entityManager); + header('Content-Type: application/octet-stream'); // signifie fichier quelconque, du binaire quoi! + header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); // pour provoquer un téléchargement et non pour afficher + header('Content-Length: ' . filesize($file_path)); // peut servir côté client (barre de progression...) + readfile($file_path); + die; + } + // exeptions lancées dans Backup::mySQLdump + catch(ProcessFailedException $e){ // pas d'info $e pour le client + header('Location: ' . new URL(['page' => 'maintenance', 'error' => '500'])); + die; + } + die; + } } \ No newline at end of file -- cgit v1.2.3