Browse Source

Ajoute la gestion des fichiers Excel protégés par mot de passe lors de l'importation

stany.ferer 3 weeks ago
parent
commit
2ae423f9b8
1 changed files with 19 additions and 1 deletions
  1. 19 1
      core/submit/cms.rh-import-excel.php

+ 19 - 1
core/submit/cms.rh-import-excel.php

@@ -28,11 +28,29 @@ if (core::ifPost("from") and core::getPost("from") == "rh-import-excel") {
 
             $data = array();
 
+            // Vérification si le fichier est protégé par mot de passe
+            $fileContent = file_get_contents($_FILES[core::getPost("from")]['tmp_name']);
+            if (strpos($fileContent, 'EncryptedPackage') !== false || strpos($fileContent, 'encryption') !== false) {
+                alert::recError("Le fichier Excel est protégé par un mot de passe. Veuillez retirer la protection avant de l'importer.");
+                header("Location: /rh-upload-excel.html");
+                exit();
+            }
+
             $simpleXLSX = new simpleXLSX();
             $xlsx = $simpleXLSX->parse($_FILES[core::getPost("from")]['tmp_name']);
 
             if ($xlsx === false) {
-                alert::recError("Erreur lors de la lecture du fichier Excel : " . $_FILES[core::getPost("from")]['name']);
+                $errorMsg = simpleXLSX::parseError();
+
+                // Détection spécifique des fichiers protégés par mot de passe
+                if (stripos($errorMsg, 'encrypt') !== false || stripos($errorMsg, 'password') !== false) {
+                    alert::recError("Le fichier Excel est protégé par un mot de passe. Veuillez retirer la protection avant de l'importer.");
+                } elseif ($errorMsg) {
+                    alert::recError("Erreur lors de la lecture du fichier Excel : " . $errorMsg);
+                } else {
+                    alert::recError("Erreur lors de la lecture du fichier Excel : " . $_FILES[core::getPost("from")]['name']);
+                }
+
                 header("Location: /rh-upload-excel.html");
                 exit();
             }