diff --git a/config/services.yaml b/config/services.yaml
index 2d6a76f94dce138741e2d63ae83a11c1879031d9..b94693fdbf9061dac0ca1ae39c5da8d4464a842f 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -22,3 +22,6 @@ services:
 
     # add more service definitions when explicit configuration is needed
     # please note that last definitions always *replace* previous ones
+    App\Service\FileUploader:
+        arguments:
+            $targetDirectory: '%kernel.project_dir%/public/files/'
\ No newline at end of file
diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php
index 38e1febcaacd3f2569510e0dfa86706324b0db53..6c3fa5db6f6fca5d523143f59029efd82fdb230b 100644
--- a/src/Controller/HomeController.php
+++ b/src/Controller/HomeController.php
@@ -3,6 +3,7 @@
 namespace App\Controller;
 
 use App\Action\Functions;
+use App\Service\FileUploader;
 use App\Requests\{
     SortPriceRequest,
     SearchRequest,
@@ -12,6 +13,7 @@ use App\Requests\{
 };
 use DateTimeImmutable;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
+use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Attribute\Route;
@@ -104,10 +106,11 @@ class HomeController extends AbstractController
     }
 
     #[Route('/readLogFile', name: 'readLogFile')]
-    public function readLogFile(Request $request): Response
+    public function readLogFile(Request $request, FileUploader $fileUploader): Response
     {
-        $filePath = $this->getParameter('kernel.project_dir') . "/public/files/";
-        $text = $this->functions->readLogFile($filePath . $fileName);
+        $file = $request->files->get('file');
+        $fileName = $fileUploader->upload($file);
+        $text = $this->functions->readLogFile($fileName);
         $response = new JsonResponse($text);
         $response->setEncodingOptions(JSON_UNESCAPED_UNICODE);
         return $response;
diff --git a/src/Service/FileUploader.php b/src/Service/FileUploader.php
new file mode 100644
index 0000000000000000000000000000000000000000..8bd280f46e18c59b984390466290daf7740db2ee
--- /dev/null
+++ b/src/Service/FileUploader.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace App\Service;
+
+use Symfony\Component\HttpFoundation\File\Exception\FileException;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+class FileUploader
+{
+    private $targetDirectory;
+
+    public function __construct($targetDirectory)
+    {
+        $this->targetDirectory = $targetDirectory;
+    }
+
+    public function upload(UploadedFile $file)
+    {
+        $fileName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME) .'.'. $file->guessExtension();
+        try {
+            $file->move($this->getTargetDirectory(), $fileName);
+        } catch (FileException $e) {
+            throw new FileException($e->getMessage());
+        }
+
+        return $this->getTargetDirectory() . $fileName;
+    }
+
+    public function getTargetDirectory()
+    {
+        return $this->targetDirectory;
+    }
+}
\ No newline at end of file