우에헤
136
2021-09-24 17:27:19 작성 2021-09-24 17:28:06 수정됨
2
307

java spring 게시판 썸네일 추출이 안되는데 해결 방안 아시는분 있나요ㅜ


mvc2, 타일즈 사용하여 쇼핑몰 혼자 구현중입니다.

다만 oracle DB에 상품 등록까지는 되는데요.

썸네일 이미지가 상품 리스트에 나오지 않아요. 

공간은 차지하지만 위 사진처럼 출력이 됩니다.

파일 명도 다 불러오는데 해결 방안 좀 부탁드리겠습니다. ㅜ 

자바 콘솔에는 

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/tyranitar/thumbnails.do] in DispatcherServlet with name 'appServlet'

이렇게 나옵니다.

자바 코드는 이렇게 하였습니다.

<img width="121" height="154" class="mvImg" src="${contextPath}/thumbnails.do?pdList_no=${pdList.product_no}&product_image_fileName=${pdList.product_image_fileName}">


해결 방안 부탁드리겠습니다ㅜㅜ

0
  • 답변 2

  • kimdongy1000
    959
    2021-09-24 17:45:54

    return 을 할때 file 로 return 을 하셨나요 텍스트로 return 하셨나요? 


    텍스트로 return 하셨으면 img 태그가 접근할 수 있는 원본파일의 위치를 return 을 해야 하고 


    FIle 로 return 을했으면 원본 파일 주소로 File 로 만들어서 return 을 해야 합니다 


    전자는 소스가 없어서 설명은 못드리겠고 후자라면 


    @Override
    	public ResponseEntity<byte[]> getResumeImage(Map<String, Object> param) {
    		
    		UserVO userVO = (UserVO)param.get("userVO");
    		
    		param.put("id", userVO.getId());
    		
    		ResumeVO resumeVO = resumeRepository.getResume(param);
    		
    		param.put("resumeVO", resumeVO);
    		
    		
    		ResumeImageVO resumeImage = resumeRepository.getFileImage(param);
    		
    		InputStream imageStream;
    		try {
    			imageStream = new FileInputStream(resumeImage.getFilePath() + "/" + resumeImage.getFileName());
    			byte[] imageByteArray = IOUtils.toByteArray(imageStream); imageStream.close();
    			return new ResponseEntity<byte[]>(imageByteArray, HttpStatus.OK);
    		} catch (Exception e) {
    			e.printStackTrace();
    			log.error("{}" , this.getClass().toString());
    			log.error("{}" , e.toString());
    			return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
    			
    		} 
    		
    	}우


    원본이 저장되어 있는 filePath 값을 읽어서 그 대상을 stream 으로 만들어서 ResponseEntity<byte[]> 로 내 보냈습니다.







  • 우에헤
    136
    2021-09-24 17:55:17
  • 로그인을 하시면 답변을 등록할 수 있습니다.