Browse Source

Fixe erreur file document

stany.ferer 1 year ago
parent
commit
9e9bee34a7
2 changed files with 34 additions and 0 deletions
  1. 5 0
      core/class/document.class.php
  2. 29 0
      core/class/file.class.php

+ 5 - 0
core/class/document.class.php

@@ -141,6 +141,11 @@ class document
     {   
         session::setTemp(core::getPost(), "document");
         $file = core::getFiles("document-import");
+        $checkFile = file::getErrorUpload($file);
+        if(isset($checkFile["status"]) AND $checkFile["status"] == "error"){
+            alert::recError($checkFile["description"]);
+            return FALSE;
+        }
         $md5 = md5_file($file["tmp_name"]);
         if(file::findM5($md5) == TRUE){
             alert::recError("Ce fichier a déjà été utilisé : " . $file["name"]);

+ 29 - 0
core/class/file.class.php

@@ -29,6 +29,35 @@ class file
         }
     }
 
+    public static function getErrorUpload(array $_file){
+        $return = [];
+        if ($_file['error'] === UPLOAD_ERR_INI_SIZE) {
+            $return = [
+                        "status" => "error",
+                        "description" => "Le fichier téléchargé dépasse la taille maximale autorisée. Taille maximale : " . ini_get('upload_max_filesize')
+                    ];
+        } elseif ($_file['error'] !== UPLOAD_ERR_OK) {
+            $phpFileUploadErrors = array(
+                1 => 'Le fichier téléchargé dépasse la directive upload_max_filesize dans php.ini',
+                2 => 'Le fichier téléchargé dépasse la directive MAX_FILE_SIZE spécifiée dans le formulaire HTML',
+                3 => 'Le fichier n\'a été que partiellement téléchargé',
+                4 => 'Aucun fichier n\'a été téléchargé',
+                6 => 'Il manque un dossier temporaire',
+                7 => 'Échec de l\'écriture du fichier sur le disque',
+                8 => 'Une extension PHP a arrêté le téléchargement du fichier',
+            );
+            $return = [
+                "status" => "error",
+                "description" => $phpFileUploadErrors[$_file['error']]
+            ];
+        } else {
+            $return = [
+                "status" => "success"
+            ];
+        }
+        return $return;
+    }
+
     public static function findM5(string $_md5)
     {
         db::query("SELECT "