diff options
Diffstat (limited to 'controller/backup.php')
| -rw-r--r-- | controller/backup.php | 70 |
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 ré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) |
