From 43f476bf4fd1dc67b24a72e5bd2fb05129db3a7f Mon Sep 17 00:00:00 2001 From: Florinda Date: Wed, 18 Dec 2024 14:46:16 +0100 Subject: [PATCH] add FileController --- .../hermione/controllers/FileController.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/com/olympus/hermione/controllers/FileController.java diff --git a/src/main/java/com/olympus/hermione/controllers/FileController.java b/src/main/java/com/olympus/hermione/controllers/FileController.java new file mode 100644 index 0000000..9f83ea4 --- /dev/null +++ b/src/main/java/com/olympus/hermione/controllers/FileController.java @@ -0,0 +1,58 @@ +package com.olympus.hermione.controllers; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import com.olympus.dto.FileUploadDTO; +import com.olympus.model.apollo.KSDocument; +import com.olympus.model.apollo.KSIngestionInfo; + +@RestController +public class FileController { + + private static final String UPLOAD_DIR = "C:\\mnt\\hermione_storage\\documents\\file_input_scenarios\\"; + + @PostMapping("/uploadListFiles") + public ResponseEntity uploadFiles( + @RequestParam("MultiFileUpload") List files) { + + long timestamp = System.currentTimeMillis(); + int randomNum = new Random().nextInt(1000); // Numero random tra 0 e 999 + + // Crea un nome di cartella basato sulla data e sul numero randomico + String folderName = timestamp + "_" + randomNum; + File folder = new File(UPLOAD_DIR + folderName); + + if (!folder.exists()) { + folder.mkdirs(); // Crea la cartella se non esiste + } + + try { + // Salva ogni file nella cartella + for (MultipartFile file : files) { + // Path path = Paths.get(UPLOAD_DIR + file.getOriginalFilename()); + // file.transferTo(path); + String fileName = file.getOriginalFilename(); + File destFile = new File(folder, fileName); + file.transferTo(destFile); + } + return ResponseEntity.ok(folderName); + + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Error uploading files: " + e.getMessage()); + } + } +}