-
JAVA BufferedImage to MultipartFileJava 2022. 4. 12. 17:34반응형
multipart/form-data로 이미지 파일을 전송하기 위해서는 스프링에서 제공하는 MultipartFile 클래스를 사용하면 된다. 이미 이미지를 BufferedImage로 load한 후 MultipartFile로 변환하려면 일반적인 방법을 사용할 수 없다.
파일 -> MultipartFile
https://oingdaddy.tistory.com/278
BufferedImage -> MultipartFile
import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.io.InputStream; public class CustomMultipartFile implements MultipartFile { private final byte[] bytes; String name; String originalFilename; String contentType; boolean isEmpty; long size; public CustomMultipartFile(byte[] bytes, String name, String originalFilename, String contentType, long size) { this.bytes = bytes; this.name = name; this.originalFilename = originalFilename; this.contentType = contentType; this.size = size; this.isEmpty = false; } @Override public String getName() { return name; } @Override public String getOriginalFilename() { return originalFilename; } @Override public String getContentType() { return contentType; } @Override public boolean isEmpty() { return isEmpty; } @Override public long getSize() { return size; } @Override public byte[] getBytes() throws IOException { return bytes; } @Override public InputStream getInputStream() { return null; } @Override public void transferTo(File dest) throws IllegalStateException { } }
BufferedImage를 MultipartFile로 바꾸기 위해서는 MultipartFile 인터페이스를 implements해 구현체를 만들어줘야한다.
private MultipartFile convertBufferedImageToMultipartFile(BufferedImage image) { ByteArrayOutputStream out = new ByteArrayOutputStream(); try { ImageIO.write(image, "jpeg", out); } catch (IOException e) { log.error("IO Error", e); return null; } byte[] bytes = out.toByteArray(); return new CustomMultipartFile(bytes, "image", "image.jpeg", "jpeg", bytes.length); }
이후 생성자를 이용해 CustomMultipartFile을 생성해주면 된다.
반응형'Java' 카테고리의 다른 글
Feign POST 파일 전송 (multipart/form-data) (0) 2022.04.12 Feign POST application/x-www-form-urlencoded (0) 2022.04.12 Java 최대 너비 높이에 맞춰 resize하기 (0) 2022.04.12 Java 여러장의 이미지 세로로 merge 하기 (0) 2022.04.12 Proxy 통해 이미지 URL 다운로드 (0) 2022.04.12