소스 검색

Fixe Documents

stany.ferer 1 년 전
부모
커밋
06023ba70f
4개의 변경된 파일32개의 추가작업 그리고 18개의 파일을 삭제
  1. 1 1
      core/class/document.class.php
  2. 30 13
      core/class/file.class.php
  3. 1 1
      core/views/pages/cms.document.php
  4. 0 3
      maj/sql/maj.sql

+ 1 - 1
core/class/document.class.php

@@ -77,7 +77,7 @@ class document
                 }
         } else {
             file::delete($idFile, DIR_DATAS_DOCS);
-            alert::recError("Erreur à l'enregistrement de la pièce jointe : " . $idFile);
+            alert::recError("Erreur à l'enregistrement de la pièce jointe : " . $file["tmp_name"]);
             return FALSE;
         }
     }

+ 30 - 13
core/class/file.class.php

@@ -5,24 +5,41 @@ class file
     public static function record(array $_temp, string $_folderFiles = DIR_DATAS_FILES)
     {
         $md5 = md5_file($_temp["tmp_name"]);
-        if (copy($_temp["tmp_name"], $_folderFiles . $md5)) {
-            db::query("INSERT INTO " . DB_T_FILES . " (id, name, size, id_user) VALUES (:id, :name, :size, :id_user)");
-            db::bind(':id', $md5);
-            db::bind(':name', $_temp['name']);
-            db::bind(':size', $_temp['size']);
-            db::bind(':id_user', session::getId());
 
-            try {
-                db::execute();
-                return $md5;
-            } catch (Exception $ex) {
-                unlink($_folderFiles . $md5);
-                alert::recError("Erreur #record sur l'import du fichier " . $_temp['name']);
-                return FALSE;
+        if(self::findM5($md5) == FALSE){
+            if (copy($_temp["tmp_name"], $_folderFiles . $md5)) {
+                db::query("INSERT INTO " . DB_T_FILES . " (id, name, size, id_user) VALUES (:id, :name, :size, :id_user)");
+                db::bind(':id', $md5);
+                db::bind(':name', $_temp['name']);
+                db::bind(':size', $_temp['size']);
+                db::bind(':id_user', session::getId());
+    
+                try {
+                    db::execute();
+                    return $md5;
+                } catch (Exception $ex) {
+                    unlink($_folderFiles . $md5);
+                    alert::recError("Erreur #record sur l'import du fichier " . $_temp['name']);
+                    return FALSE;
+                }
             }
+        } else {
+            alert::recError("Erreur #record ce fichier a déjà été importé : " . $_temp['name']);
+            return FALSE;
         }
     }
 
+    public static function findM5(string $_md5)
+    {
+        db::query("SELECT "
+            . "IF(" . DB_T_FILES . ".name IS NOT NULL, TRUE, FALSE) AS exist "
+            . "FROM " . DB_T_FILES . " "
+            . "WHERE " . DB_T_FILES . ".id = :md5");
+        db::bind(':md5', $_md5);
+        $return = db::single();
+        return ($return == TRUE) ? TRUE : FALSE;
+    }
+
     public static function delete(string $_id = NULL, string $_folderFiles = DIR_DATAS_FILES)
     {
         if (isset($_id) and $_id != NULL and file_exists($_folderFiles . $_id)) {

+ 1 - 1
core/views/pages/cms.document.php

@@ -153,7 +153,7 @@ if(isset($document["id"]) AND tags::compareUserDocument($userTags, $document["ta
             <div class="file-drop-area" style="margin-top:22px;">
                 <span class="choose-file-button">Choisissez votre document</span>
                 <span class="file-message">ou drag & drop</span>
-                <input id="document-import" class="import-excel" name="document-import" type="file" onchange="dargAndDrop()">
+                <input id="document-import" class="import-excel" name="document-import" type="file" onchange="dargAndDrop()" required>
             </div>
             <br />
         <?php } else {

+ 0 - 3
maj/sql/maj.sql

@@ -1,3 +0,0 @@
-
-INSERT INTO `access` (`id`, `label`, `show`, `add`, `access`, `noAccess`) VALUES
-(16, 'Documents', 1, 1, 'document*\r\ndocuments', '');