본문 바로가기

Frameworks/SPRING9

TIKA를 이용한 서버측 파일 확장자 체크 ※ 많은 레퍼런스들을 참고하여 고민하며 구현한 코드지만 저 스스로도 취업준비생인 초보 개발자이기 때문에 코드 상의 문제 혹은 더 바람직한 우수사례들이 있을 수 있습니다. 코드 작성 시 참고 정도로 활용해주시고 문제나 개선 가능한 부분 발견 시 공유해주신다면 감사하겠습니다. 파일명의 String에서 확장자명을 추출하는 방식으로 타입 체크 시에는 위변조 위험에 쉽게 노출되기 때문에 Apache의 Tika를 이용해보겠습니다 Exception public class NotImageFileException extends RuntimeException { public NotImageFileException() { super(); } } 이미지 파일이 아닐 시 발생될 Custom Exception 입니다 Upload.. 2022. 3. 2.
JAVA SPRING 파일 업로드 기능 구현하기 ※ 많은 레퍼런스들을 참고하여 고민하며 구현한 코드지만 저 스스로도 취업준비생인 초보 개발자이기 때문에 코드 상의 문제 혹은 더 바람직한 우수사례들이 있을 수 있습니다. 코드 작성 시 참고 정도로 활용해주시고 문제나 개선 가능한 부분 발견 시 공유해주신다면 감사하겠습니다. CONTROLLER @PostMapping("create") public String createPost(MultipartHttpServletRequest mtfRequest, BoardVO boardVO) { // 게시글 저장 boardService.create(boardVO); // 업로드 파일이 존재할 때 if (mtfRequest != null) { // 파일(들)을 지정된 경로에 저장하고 데이터베이스에 기록될 경로(들)을 Ar.. 2022. 2. 18.
NoSuchBeanDefinitionException: No qualifying bean of type 'xxx' available 오류 내용 MyBatis 관련 연동 테스트코드 실행 중 아래와 같이 해당 Mapper 타입의 빈을 찾을 수 없어 빈 생성 중 오류가 발생했다는 내용 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.portfolio.persistence.MyBatisTest': Unsatisfied dependency expressed through field 'boardMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.po.. 2022. 2. 12.
HTTP 상태 415 – 지원되지 않는 Media Type 오류 내용 form 태그의 input data들을 컨트롤러에서 @RequestBody 어노테이션으로 받아 VO로 파싱하는 기능을 구현하려는 과정에서 아래와 같은 오류 발생 원인 Content Type이 "text/html;charset=utf-8"인 Reqeust의 body를 해당 오브젝트로(ProductVO) 파싱할 수 없기 때문에 발생한 문제임 해결 방법 먼저 테스트를 해보는 과정 중 일어난 오류였어서 request의 Content Type이 "text/html;charset=utf-8"였지만 Request의 Content Type을 "application/json" 타입으로 하고 body를 json으로 전달한 후 컨트롤러에서 PostMapping의 MediaType을 "APPLICATION_JSON"으로.. 2022. 2. 2.