본문 바로가기

배움의미학/JAVA

convert File to MultipartFile

반응형

테스트를 하다보니 MockMultipartFile이 제대로 동작하지 않아 아래 소스의 도움을 받아서 구현함

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);

https://stackoverflow.com/questions/16648549/converting-file-to-multipartfile

https://cnpnote.tistory.com/entry/SPRING-%ED%8C%8C%EC%9D%BC%EC%9D%84-MultiPartFile%EB%A1%9C-%EB%B3%80%ED%99%98

 

 

이클립스오류발생참고

ㅇ FileItem과 DiskFileItem이 import 되었으나 이클립스 최상단에서 아래와 같이 오류가 발생하였으며, 사용 부분에서도 오류가 발생함

I'm trying to make a POST request with a MultipartFile. First I want to convert a File into a MultipartFile:The type org.apache.commons.fileupload.FileItem cannot be resolved. It is indirectly referenced from required .class files

parent pom파일에 등록되어 있는 내용이었으나, pom.xml에도 넣어줘야지 오류없이 이클립스에서 동작했음

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
</dependency>

 

반응형