HTML pages can configure files to be uploaded using as enctype attribute “multipart/form-data“. Out of the box, the org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration already has support to enable multi-part upload. So let’s see an example HTML page with a form with enctype=”multipart/form-data” to upload a file:
<?xml version="1.0"?>
<form action="uploadFile" th:action="@{/uploadFile}" method="post" enctype="multipart/form-data">
<input type="file" name="myFile"/>
<input type="submit"/>
</form>
In order to handle the request, we can implement a Controller as shown in this example:
@PostMapping("/uploadFile")
public String handleFileUpload(@RequestParam("myFile") MultipartFile file) {
if (!file.isEmpty()) {
String name = file.getOriginalFilename();
try {
byte[] bytes = file.getBytes();
Files.write(new File(name).toPath(), bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
return "redirect:/fileUpload";
}
Finally, we need to configure our Spring Boot application to enable Multipart file uploads, and set the maximum file size that can be uploaded. Open src/main/resources/application.properties file, and add the following configuration into it:
spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=2MB spring.servlet.multipart.max-request-size=20MB spring.servlet.multipart.file-size-threshold=5MB
Enjoy uploading Files with Spring Boot!
Found the article helpful? if so please follow us on Socials