IT/프로그래밍
[Java] String을 MultipartFile FileUpload 시 '이 파일 형식은 지원되지 않는 것 같습니다.' 오류 원인
은그램
2024. 8. 24. 22:31
728x90
반응형
MultipartFile 업로드를 했는데, 파일이 생성되었는데
'이 파일 형식은 지원되지 않는 것 같습니다.' 라는 오류가 발생하는 게 아닌가..!
이럴 때에는,
String 값을 MultipartFile 으로 설정했을 때 데이터를 확인해야 한다.
String to MultipartFile 시,
String imageString = "~~~";
byte[] imageByte = imageString.getBytes();
MultipartFile uploadFile = new MockMultipartFile(
"file" // 파일명 ( html인 경우, form 타입의 id값
, "image.jpg" // 저장할 데이터 full name
, "image/jpeg" // 데이터 타입
, imageByte );
이미지파일 문자열 값을 byte 로 변환해서,
MultipartFile 데이터로 만드는 것이다.
이 때에, String 값이 암호화되지 않은 plainText인지 확인하는 게 우선인 것 같다.
나의 경우에는,
String 값이 Base64 인코딩이 되어있는 상태여서 제대로 처리되지 않았다.
// java 8 이상
String decImage = Base64.getDecode(imageString);
// java 1.7 이하
String decImage = Base64.decodeBase64(imageString);
이렇게 이미지 문자열을 디코딩 후,
해당 데이터를 byte 처리하여 위의 방식 대로 upload 처리를 하니 이미지 업로드가 정상적으로 처리되었다!!!!!!!!!!!!!!!!!!!!!!!!!!
728x90
반응형