From 303fdc72084a5d579f26697d7d7e0bdd2cc1cff5 Mon Sep 17 00:00:00 2001 From: Antoine Duquenoy Date: Wed, 17 Oct 2018 21:26:27 +0200 Subject: [PATCH] Sauvegarde des fichiers envoyés --- PFE06/files/admin_1539804173965/arch-tux.jpg | Bin 0 -> 19840 bytes PFE06/src/main/java/com/PFE/ServerManager/MainController.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++------- PFE06/src/main/java/com/PFE/ServerManager/SecurityConfig.java | 4 +++- PFE06/src/main/resources/static/js/home.js | 8 ++++++-- 4 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 PFE06/files/admin_1539804173965/arch-tux.jpg diff --git a/PFE06/files/admin_1539804173965/arch-tux.jpg b/PFE06/files/admin_1539804173965/arch-tux.jpg new file mode 100644 index 0000000..0e3e6b6 Binary files /dev/null and b/PFE06/files/admin_1539804173965/arch-tux.jpg differ diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index 13163af..1db8cad 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -3,19 +3,20 @@ package com.PFE.ServerManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; +import java.io.*; +import java.sql.Timestamp; import java.util.Arrays; import java.util.HashSet; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.Authentication; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.http.ResponseEntity; +import org.springframework.web.context.request.RequestContextHolder; -import javax.jws.WebParam; -import javax.persistence.SequenceGenerator; import javax.servlet.annotation.MultipartConfig; @Controller @@ -86,11 +87,52 @@ public class MainController { return modelAndView; } - @PostMapping(path="/file") - public ResponseEntity addFile(@RequestParam("file") MultipartFile uploadedFile, @RequestParam String filename, @RequestParam String nodes) { - return new ResponseEntity<>(HttpStatus.OK); + @RequestMapping(value = "/file", method = RequestMethod.POST) + @ResponseStatus(value = HttpStatus.OK) + public void submit( + @RequestParam MultipartFile file, @RequestParam String nodes, + @RequestParam String filename) { + + + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Customer customer = customerRepository.findByPseudo(auth.getName()); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + File dirs = new File("files/" + customer.getPseudo() + "_" + timestamp.getTime()); + dirs.mkdirs(); + OutputStream outputStream = null; + InputStream inputStream = null; + + try { + inputStream = file.getInputStream(); + File newFile = new File(dirs.getPath() + "/" + file.getOriginalFilename()); + if (!newFile.exists()) { + newFile.createNewFile(); + } + outputStream = new FileOutputStream(newFile); + int read = 0; + byte[] bytes = new byte[1024]; + + while((read = inputStream.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + } + + catch (IOException e) { + e.printStackTrace(); + } + + finally { + try { + outputStream.close(); + } + catch(IOException e) { + + } + } + } + @GetMapping(path="/login") public ModelAndView login() { ModelAndView modelAndView = new ModelAndView(); diff --git a/PFE06/src/main/java/com/PFE/ServerManager/SecurityConfig.java b/PFE06/src/main/java/com/PFE/ServerManager/SecurityConfig.java index ebdfe92..92c8084 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/SecurityConfig.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/SecurityConfig.java @@ -52,7 +52,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .logoutSuccessUrl("/login") .and() .exceptionHandling() - .accessDeniedPage("/denied"); + .accessDeniedPage("/denied") + .and() + .csrf().disable(); } } \ No newline at end of file diff --git a/PFE06/src/main/resources/static/js/home.js b/PFE06/src/main/resources/static/js/home.js index 71121cd..fb33dd3 100644 --- a/PFE06/src/main/resources/static/js/home.js +++ b/PFE06/src/main/resources/static/js/home.js @@ -107,10 +107,14 @@ $(document).ready(function() { $("#warningFilesNumber").modal() } + request.onreadystatechange = function() { + if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { + formData = new FormData(); + } + } + request.send(formData); - delete formData; - formData = new FormData(); } else { if(readyToSend) { -- libgit2 0.21.2