게시판12) MIME 타입

  • MIME 타입을 공부해서 아래와 같이 이미지 미리보기 기능을 넣을 수 있다.

1206sp1

MIME이란?

  • MIME은 클라이언트에게 전송된 문서의 타입을 알려준다.
타입설명일반적인 서브타입 예시
text텍스트를 포함하는 모든 문서를 나타내며 이론상으로는 인간이 읽을 수 있어야 합니다text/plain, text/html, text/css, text/javascript
image모든 종류의 이미지를 나타냅니다. (animated gif처럼) 애니메이션되는 이미지가 이미지 타입에 포함되긴 하지만, 비디오는 포함되지 않습니다.image/gif, image/png, image/jpeg, image/bmp, image/webp
audio모든 종류의 오디오 파일들을 나타냅니다.audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
video모든 종류의 비디오 파일들을 나타냅니다.video/webm, video/ogg
application모든 종류의 이진 데이터를 나타냅니다.application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf

출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types

첨부 파일 이미지 미리보기 보여주기

  • 여기서 MIME 타입이 image라면 미리보기를 보여줄 것이다.
  1. Files.probeContentType(Paths.get(fullpath));를 이용해 첨부파일의 mime 타입을 알아내고
  2. mime 타입에 image라는 단어가 들어가면 mime을 모델에 저장해 jsp에서 접근할 수 있게 해준다.
@RequestMapping("/boarddetail")
public String boardDetail(int boardseq, Model model) {
    //db 접속해야됨.
    Board board = repository.boardDetail(boardseq);

    String mime = null;
    if(board.getSavedfile()!=null) {
        String fullpath = uploadPath +"/" + board.getSavedfile();
        try {
            mime = Files.probeContentType(Paths.get(fullpath));
        } catch (IOException e) {
            e.printStackTrace();
        }
        if(mime.contains("image")){
            model.addAttribute("mime",mime);
        }
        System.out.println("MIME type :" + mime);
    }
  • mime 이 null 이 아니면 image 타입이다.

  • 다음과 같은 코드를 사용하면 img를 미리 보여줄 수 있다.

    <img src ="download?boardseq=${board.boardseq}" style = "height: 50px;">
    
  • 첨부파일 부분 코드

    <tr>
        <th>첨부파일</th>
        <td><a href= "download?boardseq=${board.boardseq}" }>${board.originalfile}</a>
            <c:if test = "${not empty mime }">
                <br>
                <img src ="download?boardseq=${board.boardseq}" style = "height: 50px;">
            </c:if>
        </td>
    </tr>
    

◇ Spring 게시판 포스팅 시리즈 ◇

  1. Spring 과 DB 연결하기
  2. 회원 가입 화면 구성
  3. ID 중복 확인 하기
  4. 로그인 페이지 만들기
  5. 게시판 화면 구성하기
  6. 글 쓰기 기능 구현
  7. 글 확인 기능 구현
  8. 글 수정 기능 구현
  9. 게시판 페이징
  10. 파일 첨부 기능
  11. 파일 다운 기능
  12. MIME 타입 - 현재 글
  13. 글 수정시 파일 변경

© 2018. All rights reserved.

Powered by Hydejack v8.5.2