[SPRING] 파일을 MultiPartFile로 변환
SPRING파일을 MultiPartFile로 변환
File 객체를 MultiPartFile로 변환 할 수있는 방법이 있습니까? 그래서 MultiPartFile 인터페이스의 객체를 받아들이는 메소드로 그 객체를 보낼 수 있습니까?
File myFile = new File("/path/to/the/file.txt")
MultiPartFile ....?
def (MultiPartFile file) {
def is = new BufferedInputStream(file.getInputStream())
//do something interesting with the stream
}
해결법
-
==============================
1.이 목적으로 MockMultipartFile이 존재합니다. 스 니펫에서 파일 경로를 알고있는 경우 다음 코드가 유용합니다.
이 목적으로 MockMultipartFile이 존재합니다. 스 니펫에서 파일 경로를 알고있는 경우 다음 코드가 유용합니다.
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import org.springframework.mock.web.MockMultipartFile; Path path = Paths.get("/path/to/the/file.txt"); String name = "file.txt"; String originalFileName = "file.txt"; String contentType = "text/plain"; byte[] content = null; try { content = Files.readAllBytes(path); } catch (final IOException e) { } MultipartFile result = new MockMultipartFile(name, originalFileName, contentType, content);
-
==============================
2.
File file = new File("src/test/resources/input.txt"); FileInputStream input = new FileInputStream(file); MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input));
-
==============================
3.
MultipartFile multipartFile = new MockMultipartFile("test.xlsx", new FileInputStream(new File("/home/admin/test.xlsx")));
이 코드는 나에게 잘 어울린다. 시도해 볼 수 있을지도 모른다.
-
==============================
4.
File file = new File("src/test/resources/validation.txt"); DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file.getName(), (int) file.length() , file.getParentFile()); fileItem.getOutputStream(); MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
당신은
fileItem.getOutputStream();
그렇지 않으면 NPE를 던지기 때문입니다.
-
==============================
5.내 경우에는
내 경우에는
fileItem.getOutputStream();
작동하지 않았다. 따라서 저는 IOUtils를 사용하여 직접 만들었습니다.
File file = new File("/path/to/file"); FileItem fileItem = new DiskFileItem("mainFile", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length(), file.getParentFile()); try { InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream(); IOUtils.copy(input, os); // Or faster.. // IOUtils.copy(new FileInputStream(file), fileItem.getOutputStream()); } catch (IOException ex) { // do something. } MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
from https://stackoverflow.com/questions/16648549/converting-file-to-multipartfile by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] java.lang.NoSuchMethodError : 자바 스크립트 숨겨진 기능은 무엇입니까? (0) | 2018.12.26 |
---|---|
[SPRING] Spring 빈을 비 프로비저닝 할 수 있습니까? (0) | 2018.12.26 |
[SPRING] java.lang.ClassNotFoundException : org.springframework.web.servlet.DispatcherServlet 오류 (0) | 2018.12.26 |
[SPRING] Spring의 Json은 적절한 응답으로 해결되지 않습니다. (0) | 2018.12.26 |
[SPRING] jsp 2.0 SimpleTag에 스프링 빈을 주입하는 방법? (0) | 2018.12.26 |