¡Ú jspSmartUpload¸¦ ÀÌ¿ëÇÑ ÆÄÀÏ ¾÷·Îµå

Last Modified 2002/05/25
Written by hsboy
ReadCount 296


* °­Á¸¦ ½ÃÀÛÇϱâÀü¿¡.....

jspSmartUpload´Â ¸î°¡Áö ¹®Á¦Á¡ÀÌ ÁöÀûµÇ°í ÀÖ¾î ±Ã±ØÀûÀ¸·Î´Â »ç¿ëÇÏÁö ¸»°ÍÀ» ±ÇÀåÇϰí ÀÖ½À´Ï´Ù. µû¶ó¼­ º»°­Á¸¦ Âü°í¿© ±¸ÇöµÈ »çÀÌÆ®¿¡¼­ ³ªÅ¸³ª´Â ¹®Á¦Á¡¿¡ ´ëÇØ¼­ ÇÊÀڴ åÀÓÁöÁö ¾Ê½À´Ï´Ù.
ÀÚ¼¼ÇÑ ³»¿ëÀº ¾Æ·¡ÀÇ ÆäÀÌÁö¿¡¼­ »ìÆì º¸½Ã±â ¹Ù¶ø´Ï´Ù.

http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=servlet&c=r_p&n=995622233

JSP¿¡¼­ ÆÄÀÏ ¾÷·Îµå´Â ±¸ÇöÇÏ´Â ´ë´ÜÈ÷ ¾î·Á¿î ºÎºÐÁß¿¡ Çϳª ÀÔ´Ï´Ù. ±×·¯ÇÑ ÀÌÀ¯·Î ÆÄÀÏ ¾÷·Îµå¿¡ °üÇÑ ÆÐŰÁö°¡ ¸¹ÀÌ ¹èÆ÷µÈ »óÅÂÀ̰í.. jspSmartUpload´Â ±×Áß¿¡¼­ °¡Àå À¯¸íÇÑÆÐŰÁö°¡ ¾Æ´Ñ°¡.. ÇÕ´Ï´Ù. ¾î°µç ÀÌ·¯ÇÑ ÆÐŰÁö¸¦ ÀÌ¿ëÇÏ¸é ±×.. ¾î·Æ´ø ÆÄÀÏÀÇ ¾÷·Îµå°¡.. ¹«Áö ½±°Ô ±¸ÇöµË´Ï´Ù.
jspSmartUpload´Â ´ÙÀ½ÀÇ »çÀÌÆ®¿¡¼­ ´Ù¿î ¹ÞÀ¸½Ç¼ö ÀÖÀ¸¸ç, ¶ÇÇÑ ´õ ÀÚ¼¼ÇÑ ¼³¸íÀ» º¸½Ç¼ö ÀÖÀ» °Ì´Ï´Ù.

http://www.jspsmart.com

¶ÇÇÑ ÀúÀÇ È¨ÆäÀÌÁö(http://aboutjsp.com)ÀÇ ÀÚ·á½Ç¿¡µµ ¾÷·Îµå¸¦ ÇØ ³õ¾ÒÀ¸´Ï ÇÊ¿ä ÇϽŠºÐµéÀº °¡¼Å¼Å ´Ù¿î¹ÞÀ¸½Ã±â ¹Ù¶ø´Ï´Ù.


* jspSmartUpload ÆÐŰÁö ¼³Ä¡Çϱâ

ÀÚ~ »ç¿ëÀ» ÇÏ·Á¸é ¸ÕÀú ¼³Ä¡ºÎÅÍ ÇÏ¼Å¾ß °ÚÁö¿ä? ´Ù¿î ¹ÞÀ¸½Å ÆÄÀÏÀÇ ¾ÐÃàÀ» Ç®¸é ¿©·¯ ¿¹Á¦ÆÄÀÏÀÌ º¸À̰í WEB-INF ¶ó´Â µð·ºÅ丮°¡ º¸Àϰ̴ϴÙ. ±×¹Ø¿¡ classes °¡ ÀÖ±¸¿ä.. classes µð·ºÅ丮¹Ø¿¡ com À̶ó´Â µð·ºÅ丮°¡ º¸Àϰ̴ϴÙ. (jspSmartUpload/WEB-INF/classes/com/.......) "com" ¹ØÀ¸·Î Âß~Âß~ ³»·Á¿À¸é jspSmartUpload ¿¡¼­ Áö¿øÇϴ Ŭ·¡½º µéÀ» È®ÀÎ ÇϽǼö ÀÖÀ» °Ì´Ï´Ù.
ÇØ´ç Ŭ·¡½º¸¦ »ç¿ëÇϱâ À§Çؼ­´Â Ŭ·¡½º°¡ ÀÖ´Â µð·ºÅ丮°¡ CLASSPATH¿¡ ÀâÇô ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀûÀýÇÑ µð·ºÅ丮¿¡ ÀúÀåÀ»ÇϽðí CLASSPATH·Î Àâ¾Æ ÁÖ½Ã¸é ¼³Ä¡´Â ³¡ÀÌ ³ª°Ô µË´Ï´Ù. CLASSPATH ¿¡ ´ëÇØ¼­ Àß ¸ð¸£½Ã´Â ºÐµéÀº jspSmartUploadÀÇ WEB-INF/classes ÀÌÇÏÀÇ µð·ºÅ丮¸¦ »ç¿ëÇÏ´Â À¥¾îÇø®ÄÉÀ̼ÇÀÇ ·çÆ®¾Æ·¡ WEB-INF/classes¿¡ º¹»ç ÇÕ´Ï´Ù. ȤÀº °°ÀÌ ¹èÆ÷µÈ jarÆÄÀÏÀ» WEB-INF/lib¿¡ º¹»çÇØµµ µË´Ï´Ù.


* ¾÷·Îµå¸¦ À§ÇÑ È¯°æ ±¸ÃàÇϱâ

ȯ°æ ±¸ÃàÀº º°·Î ¾î·Á¿ï°Ô ¾øÁÒ. ´Ü ÇѰ¡Áö¸¸ ÁÖÀÇ ÇÏ¸é µÇ´Â µ¥ ÆÄÀÏÀÌ ¾÷·ÎµåµÉ µð·ºÅ丮ÀÇ ÆÛ¹Ì¼Ç ¹®Á¦ÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÆÄÀÏÀÌ ¾÷·Îµå°¡ µÇ±â À§Çؼ­´Â other ¿¡ w ±ÇÇÑÀÌ ÁÖ¾îÁö¸é µÇ´Âµ¥, Áï upload¶ó´Â µð·ºÅ丮 ¾÷·Îµå¸¦ ÇÏ·Á°í ÇÑ´Ù¸é upload µð·ºÅ丮ÀÇ ±ÇÇÑÀ» 777 µîÀ¸·Î º¯°æÇÏ¿© ÁÖ¸é µÈ´Ù. ÀÌ¿¡´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº À¯´Ð½º(¸®´ª½º)¿¡¼­ÀÇ ÆÛ¹Ì¼Ç ¼³Á¤¿¡´ëÇÑ °­Á¸¦ Âü°íÇϱ⠹ٶø´Ï´Ù. ( http://kldp.org ¸¦ Âü°í ÇÏ¸é µÉµíÇÕ´Ï´Ù...)
À©µµ¿ì ȯ°æ¿¡¼­´Â ÆÛ¹Ì¼Ç¿¡ ´ëÇØ ´Þ¸® ¼³Á¤ÇÏ½Ç ³»¿ëÀº ¾ø½À´Ï´Ù.


* ¾÷·Îµå¸¦ ÇÏÀÚ~!!

* jspSmartUpload ÀÇ API ¹®¼­´Â ´Ù¿î¹ÞÀº ÆÄÀÏÀÇ ¾ÐÃàÀ» Ç®¸é °°ÀÌ Á¦°øµÇ¾î Àִµ¥, Á¦ ȨÆäÀÌÁö ¿¡ ¿Ã·ÁµÐ °ÍÀ» Âü°í Çϼŵµ µË´Ï´Ù.

http://aboutjsp.com/docs/jspsmartupload/index.html

´ÙÀ½¿¡¼­ ¼³¸íÇÏ´Â ³»¿ë¿Ü¿¡ ¸¹Àº À¯¿ëÇÑ ¸Þ¼ÒµéÀÌ ¸¹ÀÌ ÀÖÀ¸´Ï ¹®¼­¸¦ Âü°í Çϼż­ »ç¿ëÇϽñ⠹ٶø´Ï´Ù.

jspSmartUpload¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¸ÕÀú À§¿¡¼­ ¼³Ä¡ÇÑ ÆÐŰÁö "com.jspsmart.upload"¸¦ import ÇØ¾ß ÇÕ´Ï´Ù. ±×¸®°í ´ÙÀ½À¸·Î <jsp:useBean> ¾×¼Ç±¸¹®À¸·Î SmartUpload Ŭ·¡½ºÀÇ °´Ã¼¸¦ Á¤ÀÇ Çϰí JSP ½ºÅ©¸³Æ® º»¹®¿¡¼­ °´Ã¼¸¦ ÃʱâÈ­ ÇÑµÚ initialize(pageContext) ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

<%@ page contentType="text/html;charset=EUC-KR" %>
<%@ page language="java" import="com.jspsmart.upload.*" %>
<jsp:useBean id="smart" scope="page" class="com.jspsmart.upload.SmartUpload" />

<%
smart.initialize(pageContext);
%>

±× ´ÙÀ½À¸·Î upload() ¸Þ¼Òµå¸¦ »ç¿ëÇØ¼­ ÆÄÀÏÀ» ¾÷·Îµå¸¦ Çϴµ¥, À̸޼ҵå´Â ´ÜÁö ÆÄÀÏÀ» ¾÷·Îµå Çϴ°ÍÀÌÁö ¾ÆÁ÷ ÀúÀåÀº ÀÌ·ç¾î ÁöÁö ¾ÊÀº °ÍÀÔ´Ï´Ù. Áï, ¸Þ¸ð¸® »ó¿¡¸¸ ¿Ã¶ó°¡ ÀÖ´Â »óŰ¡ µË´Ï´Ù. (jspSmartUpload ÀÇ ´ÜÁ¡ÀÌ ¹Ù·Î À̺κÐÀÔ´Ï´Ù.)

<% smart.upload(); %>

ÀÚ.. ¾÷·Îµå°¡ ÀÌ·ç¾î Á³À¸¸é ÀÌÁ¦ ÀúÀåÀ» ÇØ¾ß °ÚÁö¿ä.. À§¿¡ "¾÷·Îµå¸¦ À§ÇÑ È¯°æ ±¸ÃàÇϱâ"¿¡¼­ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ ÀúÀåÀº ¾²±â ÆÛ¹Ì¼ÇÀÌ ÁÖ¾îÁ® ÀÖ¾î¾ßÇÕ´Ï´Ù. /upload ¶ó´Â µð·ºÅä°¡ ÀÌ·¸°Ô ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù´Â °¡Á¤ÇÏ¿¡ ¼³¸í Çϵµ·Ï ÇϰڽÀ´Ï´Ù.

<% smart.save("/upload"); %>

ÀÚ.. À§¿Í °°ÀÌ ÇÏ¸é ¾÷·ÎµåµÈ ÆÄÀÏÀÌ /upload µð·ºÅ丮¿¡ ÀúÀåµÇ°Ô µË´Ï´Ù.

´ÙÀ½Àº ¾÷·Îµå ¿¹Á¦ÀÔ´Ï´Ù.
up.html
<html>
	<head>
		<title>ÆÄÀÏ ¾÷·Îµå ¿¹Á¦</title>
	</head>

	<body>
		<form method="post" action="up.jsp" enctype="multipart/form-data">
		<input type="file" name="file"> <BR>
		<input type="submit" value="ÀúÀå">
		</form>
	</body>
</html>

				
À§¿¡ ±½°Ô Ç¥½ÃµÈ ºÎºÐÀÌ Æ¯È÷ Áß¿äÇѵ¥, ¹Ýµå½Ã method="post" À̾î¾ß Çϸç, enctypeÀº multipart/form-data À̾î¾ß ÇÕ´Ï´Ù.. Àú´Â Àú±â ½ºÆçÀ» Çϳª Ʋ·Á¼­ ¹«Àð°Ô °í»ýÇß´ø ±â¾ïÀÌ ÀÖ½À´Ï´Ù.. ¤Ð.¤Ð
ÀÚ ±×·³.. ¿Ï¼ºµÈ up.jsp ÆÄÀÏÀÇ ³»¿ëÀ» º¸½Ã°Ú½À´Ï´Ù.
up.jsp
<%@ page contentType="text/html;charset=EUC-KR" %>
<%@ page language="java" import="com.jspsmart.upload.*" %>
<jsp:useBean id="smart" scope="page" class="com.jspsmart.upload.SmartUpload" />

<%
  smart.initialize(pageContext);
  smart.upload();

  try{
       smart.save("/upload");
  } catch(Exception e){
       out.print(e.toString());
  }
%>
				
¾ÆÁÖ °£´ÜÇÏ°Ô ±¸ÇöµÈ ¿¹Á¦ ÀÔ´Ï´Ù. ÆÄÀÏ ¾÷·Îµå°¡ ³¡³ª¸é ´Ü¼øÈ÷ ºñ¾î ÀÖ´Â ÆäÀÌÁö°¡ Ãâ·ÂÀÌ µÉ°ÍÀÔ´Ï´Ù.


* Á»´õ È®ÀåµÈ ¾÷·Îµå

À§ÀÇ ¿¹Á¦¸¸ Ȱ¿ë ÇÏ¿©µµ °£´ÜÇÏ°Ô ¾÷·Îµå¸¦ ±¸ÇöÇÒ¼ö ÀÖÁö¸¸ jspSmartUpload ¿¡¼­ Á»´õ ´Ù¾çÇÑ ±â´ÉÀ» À§Çؼ­ ¸î°¡Áö ¸Þ¼Òµåµé¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
jspSmartUpload ´Â ÃÑ 4°³ÀÇ Å¬·¡½º·Î ±¸¼ºµÇ¾î Àִµ¥ <jsp:useBean>À¸·Î µî·ÏÇÑ SmartUpload ±×¸®°í Files, File, Request °¡ ¹Ù·Î ±×°ÍµéÀÌÁÒ.
htmlÀÇ Æû¿¡¼­ jsp·Î ³Ñ±æ¶§ ¿©·¯°³ÀÇ ÆÄÀÏÀ» º¸³¾¼ö Àִµ¥ ±×·¯ÇÑ ¿©·¯°³ÀÇ ÆÄÀϵéÀ» ¹­À½À¸·Î °ü¸® ÇÒ¼ö ÀÖµµ·Ï Files Ŭ·¡½º°¡ Á¦°øµÇ¸ç, °¢°¢ÀÇ ÆÄÀÏÀ» ´Ù·ê¼ö ÀÖµµ·Ï File Ŭ·¡½º°¡ Á¦°øµË´Ï´Ù.
¿¹Á¦¸¦ Çϳª º¸¸ç ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
01: <%@ page contentType="text/html;charset=EUC-KR" %>
02: <%@ page language="java" import="com.jspsmart.upload.*" %>
03: <jsp:useBean id="smart" scope="page" class="com.jspsmart.upload.SmartUpload" />
04:
05: <%
06:    smart.initialize(pageContext);
07:    smart.upload();
08:
09:    int count=smart.save("/upload");
10:
11:    com.jspsmart.upload.File upfile=smart.getFiles().getFile(0);
12:
13:    upfile.saveAs("/upload/"+"»õ·Î¿îÀ̸§");
14:
15:    out.println(count+"°³ÀÇ ÆÄÀÏÀÌ ¾÷·Îµå µÇ¾ú½À´Ï´Ù.");   
16:
17:    out.println("¾÷·ÎµåµÈ ÆÄÀÏÀÇ À̸§Àº " + upfile.getFileName() + "ÀÔ´Ï´Ù.");
18:
19:    out.println("¾÷·ÎµåµÈ ÆÄÀÏÀÇ »çÀÌÁî´Â "+ upfile.getSize() + "Byte ÀÔ´Ï´Ù.");
20:
21: %>

				
¿ì¼± 9 ¶óÀÎÀ» º¸¸é save() ¸Þ¼Òµå´Â ¾÷·ÎµåµÈ ÆÄÀÏÀ» °¹¼ö¸¦ ÀúÀåÇÕ´Ï´Ù. µû¶ó¼­ 15 ¶óÀΰú °°ÀÌ Ãâ·ÂÀ» ÇÒ¼ö ÀÖ°Ô µË´Ï´Ù. ´ÙÀ½À¸·Î 11¶óÀÎÀ» º¸¸é File °´Ã¼¸¦ »ý¼ºÇÏ¿´°í, 13 ¶óÀο¡¼­´Â ¾÷·ÎµåµÈ ÆÄÀÏÀ» "»õ·Î¿îÀ̸§" À̶ó´Â ÆÄÀÏ·Î ÀúÀåÇÕ´Ï´Ù. ¿©±â¿¡¼­¿Í °°ÀÌ saveAs()¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é ¾÷·ÎµåµÈ ÆÄÀÏÀ» ¿øÇÏ´Â À̸§À¸·Î ¹Ù²Ù¾î¼­ ¾÷·Îµå°¡ °¡´ÉÇØ Áý´Ï´Ù. ¶ÇÇÑ 17, 19 ¶óÀÎ ¿¡¼­´Â °¢°¢ ÆÄÀÏÀÇ À̸§°ú, »çÀÌÁ ³ªÅ¸³»´Âµ¥, ÆÄÀÏÀÇ À̸§Àº ¾÷·Îµå½Ã ¹Þ¾Æ¿Â ¿ø·¡ÀÇ ÆÄÀÏ À̸§ÀÌ ¸®ÅÏ µË´Ï´Ù. »çÀÌÁîÀÇ °æ¿ì¿¡´Â Byte ´ÜÀ§·Î ¼ýÀÚ¸¸ÀÌ ¸®ÅÏ µË´Ï´Ù.


* Request °´Ã¼¿¡ ´ëÇÏ¿©...

ÇÊÀÚ°¡ óÀ½ À§¿¡¼­ jspSmartUpload¿¡ Æ÷ÇԵǾî ÀÖ´Â °´Ã¼µé¿¡´ëÇØ¼­ ¼³¸íÀ» Çϸ鼭 Çϳª »©¸ÔÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¹«¾úÀÌ³Ä ÇÏ¸é ¹Ù·Î.. "Request" À̾ú½À´Ï´Ù. (±â¾ïÇϽÃÁÒ? SmartUpload, Files, File, Request ÀÌ·¸°Ô ÀÖ¾ú´ø°Å..)
À§¿¡¼­ ¾ð±ÞÇßµíÀÌ html¹®¼­¿¡¼­ jsp·Î 'ÆÄÀÏ'À» ³Ñ±æ¶§ enctype="mulipart/form-data" ¸¦ Ãß°¡ Çß¾ú½À´Ï´Ù. ±×·±µ¥ À̰æ¿ì µ¥ÀÌÅÍ´Â Á¦´ë·Î Àü¼ÛÀÌ ÀÌ·ç¾î ÁöÁö¸¸, ±×¿Ü¿¡ Æû¿¡ ´ëÇØ¼­´Â "null" ·Î Ç¥½Ã°¡ µË´Ï´Ù. Áï, ´Ù¸¥ ÆûÀÇ µ¥ÀÌÅÍ(textµîÀÇ..)´Â ÀüÇô ¹Þ¾Æ ¿Ã¼ö¾ø¾ú´Ù´Â °ÍÀÌÁÒ.
ÀÌ·¯ÇÑ ÀÌÀ¯·Î jspSmartUpload¿¡¼­´Â Request Ŭ·¡½º¸¦ Áö¿øÇØÁÝ´Ï´Ù. ±×·³ »ç¿ë¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¼±î¿ä~ ¢Ü
01: <%@ page contentType="text/html;charset=EUC-KR" %>
02: <%@ page language="java" import="com.jspsmart.upload.*" %>
03: <jsp:useBean id="smart" scope="page" class="com.jspsmart.upload.SmartUpload" />
04:
05: <%
06:    smart.initialize(pageContext);
07:    smart.upload();
08:
09:    int count=smart.save("/upload");
10:
11:    com.jspsmart.upload.File upfile=smart.getFiles().getFile(0);
12:
13:    upfile.saveAs("/upload/"+"»õ·Î¿îÀ̸§");
14:
15:    out.println(count+"°³ÀÇ ÆÄÀÏÀÌ ¾÷·Îµå µÇ¾ú½À´Ï´Ù.");   
16:
17:    out.println("¾÷·ÎµåµÈ ÆÄÀÏÀÇ À̸§Àº " + upfile.getFileName() + "ÀÔ´Ï´Ù.");
18:
19:    out.println("¾÷·ÎµåµÈ ÆÄÀÏÀÇ »çÀÌÁî´Â "+ upfile.getSize() + "Byte ÀÔ´Ï´Ù.");
20:
21:   String name=smart.getRequest().getParameter("name");
22:  
23:  out.println("¾÷·ÎµåÇÑ »ç¶÷ À̸§ : " + name);
24:
25:  %>
				
2°³ÀÇ ¶óÀÎÀÌ Ãß°¡ µÇ¾ú½À´Ï´Ù. 21¹ø¶óÀÎÀ» º¸¸é getRequest()¶ó´Â ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿´´Âµ¥, ÀÌ ¸Þ¼Òµå´Â Request °´Ã¼¸¦ ¸®ÅÏ ÇØ ÁÝ´Ï´Ù. ±×¸®°í Request°´Ã¼ÀÇ getParameter()¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿´´Âµ¥ À̰ÍÀº ÀϹÝÀûÀÎ request.getParameter() ¸Þ¼Òµå¿Í »ç¿ë¹ýÀÌ µ¿ÀÏÇÕ´Ï´Ù.

ÀÌ»óÀ¸·Î °­Á¸¦ ¸¶Ä¨´Ï´Ù. À§ÀÇ ¿¹Á¦ ¿Ü¿¡µµ À¯¿ëÇÑ ¸Þ¼Òµå µéÀÌ ¸¹ÀÌ ÀÖ½À´Ï´Ù.. À§¿¡¼­ ¾ð±ÞÇÑ API¹®¼­¸¦ Âü°í ÇϽø鼭 º¸´Ù ¿Ïº®ÇÑ ÇÁ·Î±×·¥À» ±¸ÇöÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù ^-^ ¾Æ.. Á¦°øµÇ´Â ÆÐŰÁö¿¡ ÁÁÀº ¿¹Á¦µéµµ °°ÀÌ µé¾î ÀÖÀ¸´Ï Âü°í ÇÏ½Ã¸é ¸¹Àº µµ¿òÀÌ µÇ¸®¶ó »ý°¢ µÇ´Â±º¿ä.. ±×·³.. Àü À̸¸ ¹°·¯ °©´Ï´Ù~~~ ÃÑ~ÃÑ~ÃÑ~



* °ü·Ã»çÀÌÆ®
¡á http://www.jspsmart.com
   JspSmart.com
¡á http://okjsp.pe.kr/lecture/lec05/jspsmart01.htm
   OK JSP °­Á > JspSmartUpload ¼³Ä¡
¡á http://aboutjsp.com/docs/jspsmartupload/index.html
   JspSmartUpload API ¹®¼­

ÀúÀÚ : À̼±Àç(hsboy)
http://www.aboutjsp.com
´Ù¸¥°÷¿¡ ¿Ã¸®½Ç ¶§´Â ¹Ýµå½Ã Ãâó¸¦ ¸í½ÃÇØ Áֽñ⠹ٶó¸ç µÇµµ·Ï ÀÌ¸é ¸µÅ©¸¦ °É¾î Áֽñ⠹ٶø´Ï´Ù.