◽ JSP

섬네일(썸네일, thumbnail) 코드

사전 준비물 : jar 파일

  https://whitekeyboard.tistory.com/58?category=802083   : 썸네일 관련 jar파일
  https://whitekeyboard.tistory.com/57?category=802083   : 첨부파일 관련 jar파일

 

 

 

html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>썸네일 이미지 폼</title>
</head>
<body>
    <h3>썸네일 이미지 폼 예제</h3>
    <form action="thumbnail.jsp" method="post"
        enctype="multipart/form-data">
        이미지 파일 : <input type="file" name="filename">
        <p>
            <input type="submit" value="전송">
    </form>
</body>
</html>
 
r

 

 

 

 

java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.awt.Graphics2D" %>
<%@ page import="java.awt.image.renderable.ParameterBlock" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="javax.media.jai.JAI" %>
<%@ page import="javax.media.jai.RenderedOp" %>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
    ServletContext context = request.getServletContext();
    String imagePath=context.getRealPath("image");
    
    int size = 1*1024*1024 ;
    String filename="";
    
    try{
        MultipartRequest multi=    new MultipartRequest(request,
                                imagePath,
                              size,
                              "euc-kr",
                            new DefaultFileRenamePolicy());
        
        Enumeration files=multi.getFileNames();
        
        String file =(String)files.nextElement();
        filename=multi.getFilesystemName(file);
    }catch(Exception e){
        e.printStackTrace();
    }
    
    ParameterBlock pb=new ParameterBlock();
    pb.add(imagePath+"/"+filename);
    RenderedOp rOp=JAI.create("fileload",pb);
    
    BufferedImage bi= rOp.getAsBufferedImage();
    BufferedImage thumb=new BufferedImage(100,100,BufferedImage.TYPE_INT_RGB);
    
    Graphics2D g=thumb.createGraphics();
    g.drawImage(bi,0,0,100,100,null);
    
    File file=new File(imagePath+"/sm_"+filename);
    ImageIO.write(thumb,"jpg",file);
%>
<html>
<head>
<title>이미지 썸네일 예제</title>
</head>
<body>
-원본 이미지-<br>
<img src="image/<%=filename %>"><p>
-썸네일 이미지-<br>
<img src="image/sm_<%=filename %>">
</body>
</html>
 
r

 

 

실행

ServletContext context = request.getServletContext();

String imagePath=context.getRealPath("upload");

 

애플리케이션 영역(Server)에 저장이 된다. upload파일에는 파일이 올라가지 않는다. 

푸터바