1. 개요

이 빠른 예제에서는 Spring MultipartFileFile 로 변환하는 다양한 방법을 다룰 것 입니다.

2. MultipartFile # getBytes

MultipartFile 에는 파일 내용의 바이트 배열을 반환 하는 getBytes () 메서드 가 있습니다. 이 메서드를 사용 하여 파일에 바이트를 쓸 수 있습니다.

MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());

File file = new File("src/main/resources/targetFile.tmp");

try (OutputStream os = new FileOutputStream(file)) {
    os.write(multipartFile.getBytes());
}

assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
  .isEqualTo("Hello World");

getBytes () 메소드는 경우에 유용 우리가 디스크에 쓰기 전에 파일에 대한 추가 작업을 수행 할 파일의 해시를 계산처럼.

3. MultipartFile # getInputStream

다음으로 MultipartFilegetInputStream () 메서드를 살펴 보겠습니다 .

MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());

InputStream initialStream = multipartFile.getInputStream();
byte[] buffer = new byte[initialStream.available()];
initialStream.read(buffer);

File targetFile = new File("src/main/resources/targetFile.tmp");

try (OutputStream outStream = new FileOutputStream(targetFile)) {
    outStream.write(buffer);
}

assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
  .isEqualTo("Hello World");

여기서는 getInputStream () 메서드를 사용하여 InputStream 을 가져 오고 InputStream 에서 바이트를 읽고 byte [] 버퍼에 저장 합니다. 그런 다음 FileOutputStream만들어 버퍼 내용 을 작성합니다 .

는 getInputStream () 접근 방식은 경우에 유용 우리가 포장을 필요로하는 곳에 의 InputStream을 다른에서 의 InputStream , 예 A 말할 GZipInputStream 업로드 된 파일이 gzip으로 압축 된 경우.

4. MultipartFile # transferTo

마지막으로 MultipartFiletransferTo () 메서드를 살펴 보겠습니다 .

MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());

File file = new File("src/main/resources/targetFile.tmp");

multipartFile.transferTo(file);

assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
  .isEqualTo("Hello World");

은 Using transferTo () 메서드를 우리는 간단하게 만들 필요가 파일 다음, 우리가 바이트를 기록 할 것으로를 해당 파일을 통과 transferTo () 방법.

transferTo () 메서드는 유용 의 MultipartFile가 만에 기록 할 필요가있다 파일 .

5. 결론

이 예제에서 우리는 Spring MultipartFileFile 로 변환하는 방법을 탐구했습니다 .

평소와 같이 모든 코드 예제는 GitHub 에서 찾을 수 있습니다  .