How do I download a multipart file in spring boot?

Most of the times file upload task are not simple as it looks like in any language . If you want to do in Java world with spring boot file upload and download .

In this example, we are going to check how to Upload File Using Spring Boot and REST. We are going to use Spring MultipartFileto upload our files using Spring Boot using REST API .

Spring boot has inbuilt interface known as MultipartFile . So , Multipart is one of the most efficient way to handle large file uploads and downloads in spring . Spring boot multiple file uploads are easily handled by spring MultipartFile in java.

We are also going to check How to download files with Spring Boot and spring boot rest services.

Table of Contents

  • Technologies Used
  • Project Structure
  • Create File Upload Controller
  • Create REST API for uploading files in Spring Boot
  • Testing Code
    • Note:- Visit this Site to Understand More about Basics Of Java and Collections.

Technologies Used

  • Spring Boot 2.0
  • Maven 3.0
  • Java 1.8

Project Structure

Create File Upload Controller

We are going to upload a single file and upload it usingMultipartFile .Lets configure our Spring Boot application to enable Multipart file uploads and return the name of the uploaded file. Lets write a request mapping and write a basic REST Controller. This is a sample controller and we will be writing logic later in the section.

package com.frugalis.SpringRestFileUpload; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Random; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @RestController public class FileUploadController { String UPLOAD_DIR = "D://upload//"; @RequestMapping(value = "/upload", method = RequestMethod.POST) public @ResponseBody String handleFileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException { } @RequestMapping(value = "/upload/{galleryId}", method = RequestMethod.GET) public ResponseEntity<byte[]> getFile(@PathVariable("galleryId")String galleryId) throws IOException { } private String getRandomString() { return new Random().nextInt(999999) + "_" + System.currentTimeMillis(); } private File getTargetFile(String fileExtn, String fileName) { File targetFile = new File(UPLOAD_DIR + fileName + fileExtn); return targetFile; } private String getFileExtension(MultipartFile inFile) { String fileExtention = inFile.getOriginalFilename().substring(inFile.getOriginalFilename().lastIndexOf('.')); return fileExtention; } }

We are configuringendpoints as/upload and /upload/{imageId}. We writtenmethods to returnrandom string as well as the file format as we are going to need those while saving file.

Create REST API for uploading files in Spring Boot

Lets write our rest api and understand how we can handle multipart file and understand step by step.

@RequestMapping(value = "/upload", method = RequestMethod.POST) public @ResponseBody String handleFileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException { String fileExtension = getFileExtension(file); String filename = getRandomString(); File targetFile = getTargetFile(fileExtension, filename); byte[] bytes = file.getBytes(); file.transferTo(targetFile); String UploadedDirectory = targetFile.getAbsolutePath(); return filename; }

getTargetFile() creates a file object using UPLOAD_DIR,filename, and file extension.We are using MultipartFile.getBytes()to save the target file and return target file path in response.

Testing Code

spring boot multipart file upload

Note:- Visit this Site to Understand More about Basics Of Java and Collections.

Some Must Read Posts

  1. React JS Tutorials
  2. Spring Cloud Tutorials
  3. Spring Boot Tutorials
  4. CRUD Rest Service With Spring Boot and JPA
  5. Spring Boot Profiling Configure for Different Environments

Download Code

Video

Postingan terbaru

LIHAT SEMUA