파일 첨부 할때 사용 되는 MimeMessageHelper.addAttachment(String attachmentFilename, InputStreamSource inputStreamSource) 메소드에 MultipartHttpRequest 에서 직접 InputStream 객체를 연결 하면 문제가 발생 한다.
Buffer 에 파일을 임시로 담아 놓고, InputStream 으로 변환하면 해결 된다.
for (MultipartFile uploadFile : uploadFiles) {
String originalFilename = uploadFile.getOriginalFilename();
logger.debug("addAttachment: {}", originalFilename);
logger.debug("addAttachment size: {}", uploadFile.getSize());
mimeMessageHelper.addAttachment(MimeUtility.encodeText(originalFilename), new ByteArrayResource(IOUtils.toByteArray(uploadFile.getInputStream())));
}
IOUtils 이 없다면, pom.xml 에 추가 하자.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
참고 사이트