summaryrefslogtreecommitdiff
path: root/controller/backup.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/backup.php')
-rw-r--r--controller/backup.php70
1 files changed, 39 insertions, 31 deletions
diff --git a/controller/backup.php b/controller/backup.php
index 1477c55..2cfccaa 100644
--- a/controller/backup.php
+++ b/controller/backup.php
@@ -103,55 +103,63 @@ function restaurer($from)
103{ 103{
104 $title = 'Restauration des données'; 104 $title = 'Restauration des données';
105 $message = ''; 105 $message = '';
106 global $archiveFormat;
106 107
107 // recharger la même page en écrivant les données 108 // recharger la même page en écrivant les données
108 if(isset($_FILES['archive']) && $_FILES['archive']['error'] == 0) 109 if(isset($_FILES['archive']) && $_FILES['archive']['error'] == 0)
109 { 110 {
110 // détecter le format (zip ou autre) 111 // détecter le format (zip ou autre)
112 if($archiveFormat == 'zip')
113 {
114 // une copie du zip est conservée dans data/ au cas où
115 move_uploaded_file($_FILES['archive']['tmp_name'], 'data/' . $_FILES['archive']['name']);
116 chmod('data/' . $_FILES['archive']['name'], 0666);
111 117
112 // une copie du zip est conservée dans data/ au cas où 118 $nomFichier = 'data/' . $_FILES['archive']['name'];
113 move_uploaded_file($_FILES['archive']['tmp_name'], 'data/' . $_FILES['archive']['name']);
114 chmod('data/' . $_FILES['archive']['name'], 0666);
115
116 $nomFichier = 'data/' . $_FILES['archive']['name'];
117 119
118 // extraction 120 // extraction
119 try 121 try
120 { 122 {
121 $Zip = new ZipArchive(); 123 $Zip = new ZipArchive();
122 } 124 }
123 catch (Throwable $e) // l'extension zip n'est pas activée 125 catch (Throwable $e) // l'extension zip n'est pas activée
124 {
125 echo($e);
126 die();
127 }
128 if($Zip->open($nomFichier, ZipArchive::RDONLY) === TRUE)
129 {
130 $j = 0;
131 for($i = 0; $i < $Zip->numFiles; $i++)
132 { 126 {
133 $nomEntree = $Zip->getNameIndex($i); 127 echo($e);
134 if($Zip->extractTo('.', $nomEntree) === TRUE) 128 die();
129 }
130 if($Zip->open($nomFichier, ZipArchive::RDONLY) === TRUE)
131 {
132 $j = 0;
133 for($i = 0; $i < $Zip->numFiles; $i++)
135 { 134 {
136 $j++; 135 $nomEntree = $Zip->getNameIndex($i);
136 if($Zip->extractTo('.', $nomEntree) === TRUE)
137 {
138 $j++;
139 }
140 else
141 {
142 $message = '<p style="color: red;" >Erreur: extraction du zip impossible.</p>';
143 }
144 chmod($nomEntree, 0666);
137 } 145 }
138 else 146
147 if($j == $Zip->numFiles)
139 { 148 {
140 $message = '<p style="color: red;" >Erreur: extraction du zip impossible.</p>'; 149 $message = '<p style="color: red;" >Restauration ussie !!</p>';
141 } 150 }
142 chmod($nomEntree, 0666); 151 $Zip->close();
143 } 152 }
144 153 else
145 if($j == $Zip->numFiles)
146 { 154 {
147 $message = '<p style="color: red;" >Restauration réussie !!</p>'; 155 // mauvais fichier
156 $message = '<p style="color: red;" >Erreur: Impossible d\'ouvrir l\'archive Zip."</p>';
148 } 157 }
149 $Zip->close();
150 } 158 }
151 else 159 else
152 { 160 {
153 // mauvais fichier 161 // pas de module zip
154 $message = '<p style="color: red;" >Erreur: Impossible d\'ouvrir l\'archive Zip."</p>'; 162 $message = '<p style="color: red" >Erreur: Veuillez activer l\'extension zip dans le php.ini pour pouvoir gérer les sauvegardes.</p>';
155 } 163 }
156 } 164 }
157 elseif(isset($_FILES['archive']) && $_FILES['archive']['error'] != 0) 165 elseif(isset($_FILES['archive']) && $_FILES['archive']['error'] != 0)