From 78e8a40e1aa26a3c1d6334f5e3818f038fb012c6 Mon Sep 17 00:00:00 2001
From: Kenneth Ezekiel <88850771+KenEzekiel@users.noreply.github.com>
Date: Wed, 15 Nov 2023 17:29:40 +0700
Subject: [PATCH] fix: auto naming file

---
 src/controllers/CreateFilmController.php | 26 +++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/controllers/CreateFilmController.php b/src/controllers/CreateFilmController.php
index 9a2ac8e..4d49a23 100644
--- a/src/controllers/CreateFilmController.php
+++ b/src/controllers/CreateFilmController.php
@@ -36,6 +36,28 @@ class CreateFilmController extends BaseController
     return false;
   }
 
+  private function get_image_name($filename)
+  {
+    $extension = pathinfo($filename, PATHINFO_EXTENSION);
+    $image_name = "image_";
+    $i = 0;
+    while (file_exists($image_name . $i)) {
+      $i = $i + 1;
+    }
+    return $image_name . $i . "." . $extension;
+  }
+
+  private function get_trailer_name($filename)
+  {
+    $extension = pathinfo($filename, PATHINFO_EXTENSION);
+    $trailer_name = "trailer_";
+    $i = 0;
+    while (file_exists($trailer_name . $i)) {
+      $i = $i + 1;
+    }
+    return $trailer_name . $i . "." . $extension;
+  }
+
   protected function get($urlParams)
   {
     if (!isset($_SESSION['role']) or $_SESSION['role'] != 'admin') {
@@ -66,6 +88,7 @@ class CreateFilmController extends BaseController
       if ($_FILES['image-path']['error'] == UPLOAD_ERR_OK) {
         $image_tmp = $_FILES['image-path']['tmp_name'];
         $image_name = $_FILES['image-path']['name'];
+        $image_name = $this->get_image_name($image_name);
         move_uploaded_file($image_tmp, __DIR__ . "/../../public/files/img/" . $image_name);
         $image_path = "/files/img/" . $image_name;
 
@@ -78,6 +101,7 @@ class CreateFilmController extends BaseController
       if ($_FILES['trailer-path']['error'] == UPLOAD_ERR_OK) {
         $trailer_tmp = $_FILES['trailer-path']['tmp_name'];
         $trailer_name = $_FILES['trailer-path']['name'];
+        $trailer_name = $this->get_trailer_name($trailer_name);
         move_uploaded_file($trailer_tmp, __DIR__ . "/../../public/files/trailer/" . $trailer_name);
         $trailer_path = "files/trailer/" . $trailer_name;
 
@@ -100,7 +124,7 @@ class CreateFilmController extends BaseController
       parent::redirect("/", $urlParams);
     } catch (Exception $e) {
       $msg = $e->getMessage();
-      parent::render(["errorMsg" => $msg], "create_film", "layouts/base");
+      parent::render(["errorMsg" => $msg], "create-film", "layouts/base");
     }
   }
 }
-- 
GitLab