[JAVA] Téléchargement de fichiers avec Spring Boot

Mettre en œuvre comme titre de l'article. Les fonctions suivantes seront implémentées cette fois. -Télécharger en spécifiant le chemin de l'image à partir de l'écran de saisie composé d'un formulaire HTML et d'une balise d'entrée -Output le fichier dans le répertoire spécifié via Java

Fichier à modifier

Modifiez les 3 fichiers suivants 1.png

Controller

java:com.example.SampleController.java


@RequestMapping(path = "/sample/upload", method = RequestMethod.GET)
String uploadview(Model model) {
  return "sample/upload";
}

@RequestMapping(path = "/sample/upload", method = RequestMethod.POST)
String upload(Model model, UploadForm uploadForm) {
  if (uploadForm.getFile().isEmpty()) {
    return "sample/upload";
  }

  // check upload distination directory.If there was no directory, make
  // func.
  Path path = Paths.get("/Users/demo-kusa/image");
  if (!Files.exists(path)) {
    try {
      Files.createDirectory(path);
    } catch (NoSuchFileException ex) {
      System.err.println(ex);
    } catch (IOException ex) {
      System.err.println(ex);
    }
  }

  int dot = uploadForm.getFile().getOriginalFilename().lastIndexOf(".");
  String extention = "";
  if (dot > 0) {
    extention = uploadForm.getFile().getOriginalFilename().substring(dot).toLowerCase();
  }
  String filename = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now());
  Path uploadfile = Paths
      .get("/Users/demo-kusa/image/" + filename + extention);

  try (OutputStream os = Files.newOutputStream(uploadfile, StandardOpenOption.CREATE)) {
    byte[] bytes = uploadForm.getFile().getBytes();
    os.write(bytes);
  } catch (IOException ex) {
    System.err.println(ex);
  }

  return "redirect:/sample";
}

ActionForm

java:com.example.UploadForm.java


package com.example;

import org.springframework.web.multipart.MultipartFile;
public class UploadForm {
  private MultipartFile file;

  public MultipartFile getFile() {
    return file;
  }

  public void setFile(MultipartFile file) {
    this.file = file;
  }
}

template

src/main/resources/templates/sample/upload.html


<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>top page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>Téléchargement d'image</h2>
    <form method="post" enctype="multipart/form-data" action="/sample/upload" >
        <input name="file" type="file" />
        <input type="submit" value="Envoyer"/>
    </form>
</body>
</html>

Cet article a partiellement remplacé la partie dépendante de l'environnement, mais la source est ci-dessous, donc si vous en avez besoin, veuillez. github kaikusakari/spring_crud

Recommended Posts

Téléchargement de fichiers avec Spring Boot
Téléchargement de fichiers avec Spring Boot (ne pas utiliser de fichier en plusieurs parties)
Télécharger avec Spring Boot
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Spring Boot commençant par copie
Spring Boot à partir de Docker
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
Utiliser Spring JDBC avec Spring Boot
Ajouter un module avec Spring Boot
Premiers pas avec Spring Boot
Créer un micro service avec Spring Boot
Envoyer du courrier avec Spring Boot
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
[Note] Fichier de configuration lors de l'utilisation de Logback avec Spring Boot
Utiliser l'authentification de base avec Spring Boot
gRPC sur Spring Boot avec grpc-spring-boot-starter
Déploiement à chaud avec le développement Spring Boot
Programmation Spring Boot avec VS Code
Jusqu'à "Hello World" avec Spring Boot
Créer une application d'enquête avec Spring Boot
Obtenez des résultats de validation avec Spring Boot
Implémenter le téléchargement de fichiers avec Spring MVC
(Intellij) Hello World avec Spring Boot
Créez une application avec Spring Boot
Google Cloud Platform avec Spring Boot 2.0.0
J'ai essayé GraphQL avec Spring Boot
[Java] Intégration LINE avec Spring Boot
À partir de Spring Boot 0. Utilisez Spring CLI
J'ai essayé Flyway avec Spring Boot
La coopération des messages a commencé avec Spring Boot
Découpez SQL en fichier de propriété avec jdbcTemplate of spring boot
Traitement lors du démarrage d'une application avec Spring Boot
Qu'est-ce qu'un fichier .original Spring Boot?
Hello World avec Eclipse + Spring Boot + Maven
Comment réaliser un téléchargement de fichiers volumineux avec TERASOLUNA 5.x (= Spring MVC)
Priorité d'accès aux fichiers statiques dans Spring Boot
Envoyez des notifications régulières avec LineNotify + Spring Boot
Mémorandum de téléchargement de fichier local avec Spring Boot
Effectuer un test de confirmation de transaction avec Spring Boot
HTTPS avec Spring Boot et Let's Encrypt
Défi Spring Boot
Essayez d'utiliser Spring Boot avec VS Code
Démarrez le développement d'applications Web avec Spring Boot
Lancez l'application Nginx + Spring Boot avec docker-compose
J'ai essayé l'initialisation paresseuse avec Spring Boot 2.2.0
Forme de botte de printemps
Implémenter CRUD avec Spring Boot + Thymeleaf + MySQL
Traitement asynchrone avec Spring Boot en utilisant @Async
Implémenter la fonction de pagination avec Spring Boot + Thymeleaf
Spring Boot Rappelez-vous
gae + botte à ressort
(IntelliJ + gradle) Hello World avec Spring Boot