JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP Áú¹®&´äº¯DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP±âŸ TIP
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ® ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
Commons-fileupload
GoodBug
À̹ÌÁö ½½¶óÀÌ´õ º¸±â

Commons-Fileupload

 

 

I. Commons-fileupload ¶õ?

 

Ä¿¸Õ½ºÀÇ ÆÄÀÏ ¾÷·Îµå ÆÐÅ°Áö´Â »ç¿ë¹ýÀÌ ½¬¿ì¸ç ¾µ¸¸ÇÑ ÇÔ¼öµéÀ» ¸¹ÀÌ Áö¿øÇÕ´Ï´Ù.

SmartUpload, MultipartRequest, Commons fileuploadµîÀ» ¸ðµÎ »ç¿ëÇØ º¸¾ÒÁö¸¸ °³ÀÎÀûÀ¸·Î °¡Àå ¾ÖÂøÀÌ °¡´Â ÆÄÀÏ ¾÷·ÎµåÀÔ´Ï´Ù.

¾Æ½¬¿îÁ¡Àº Commons-fileupload´Â Áö³­ 2003³â 6¿ù 1.0¹öÁ¯À¸·Î Á¤½Ä ¸±¸®Áî µÇ¾úÁö¸¸ ±× ÀÌÈÄ·Î ÀÌ·¸´Ù ÇÒ ÆÐÄ¡³ª º¸¾ÈÀÌ ÀüÇô ¾ÈµÇ¾ú´Ù´Â °ÍÀÔ´Ï´Ù. À̸»Àº ÆÄÀÏ ¾÷·Îµå ÀÚü°¡ ±×¸® º¹ÀâÇÑ ÆÐÅ°Áö°¡ ¾Æ´Ï¸ç ù Á¤½Ä ¹öÁ¯ÀÌ ±×¸¸Å­ ¿Ïº®ÇÏ´Ù´Â °ÍÀ» ¹ÝÁõÇÏ´Â ¸»À̱⵵ ÇÏ°ÚÁö¿ä ^^

 

 

II. ´Ù¿î·Îµå ¹× ¼³Ä¡

 

ÀÚ ´Ù¿î·Îµå ¹ÞÀ¸·¯ °©½Ã´Ù.

http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi

¼³Ä¡´Â ¿ª½Ã³ª /WEB-INF/lib/ Æú´õ¿¡ º¹»çÇÕ´Ï´Ù.

 

 

III. ÆÄÀÏ ¾÷·Îµå ó¸® ´Ü°è

 

¨ç ¸ÕÀú ÆÄÀÏ ¾÷·ÎµåµÈ ¾ÆÀÌÃÀÀ» ó¸®Çϱâ Àü¿¡ À¯È¿ÇÑ RequestÀÎÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

boolean isMultipart = FileUpload.isMultipartContent(request);

ÀÌ ÄÚµå´Â ÇöÀç request°¡ multipart/form-data·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇß´ÂÁö À¯¹«¸¦ true/false·Î ¹ÝȯÇÕ´Ï´Ù.

 

¨è ¾÷·ÎµåµÈ ¾ÆÀÌÅÛÀÌ ¸Å¿ì ÀÛ´Ù¸é ¸Þ¸ð¸®¿¡¼­ ó¸®ÇÕ´Ï´Ù.

 

¨é Å« ¾ÆÀÌÅÛÀ̶ó¸é Àӽà ÆÄÀÏÀ» ¸¸µé¾î µð½ºÅ©¿¡ ÀúÀåÇÏ¿© ó¸®ÇÕ´Ï´Ù.

 

¨ê ³Ê¹« Å« ¾ÆÀÌÅÛÀ̶ó¸é ´ç¿¬È÷ °ÅºÎÇØ¾ß ÇÕ´Ï´Ù.

 

¨ë ±×·¸Áö ¾Ê°í µðÆúÆ®·Î ¼³Á¤ÇÑ ¸Þ¸ð¸®, ÃÖ´ë°ªÀÇ ¹üÀ§¸¦ ÃÊ°úÇÏÁö ¾Ê´Â´Ù¸é ¾÷·Îµå¸¦ ½ÃÀÛÇÕ´Ï´Ù.

¨è ~ ¨ë ±îÁö¸¦ ´ÙÀ½°ú °°ÀÌ °£´ÜÈ÷ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

// ÆÄÀÏ ¾÷·Îµå Çڵ鷯¸¦ »ý¼º
DiskFileUpload upload = new DiskFileUpload();

// Çѹø¿¡ ¸Þ¸ð¸®¿¡ ÀúÀåÇÒ »çÀÌÁî ¼³Á¤

upload.setSizeThreshold(yourMaxMemorySize);

// ÆÄÀÏ ¾÷·Îµå ÃÖ´ë »çÀÌÁ ¼³Á¤

upload.setSizeMax(yourMaxRequestSize);

// ÆÄÀÏ ¾÷·Îµå °æ·Î¸¦ ¼³Á¤
upload.setRepositoryPath(yourTempDirectory);

¨ì ÀÌÁ¦ Àü¼ÛµÈ request¸¦ parsingÇÏ¿© ¾ÆÀÌÅÛµéÀ» ÃßÃâÇÕ´Ï´Ù.

List /* FileItem */ items = upload.parseRequest(request);

À§¿¡¼­ ¼³Á¤ÇÑ °ªµéÀ» request parsing´ÜÀ§·Î µû·Î ¼³Á¤ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

List /* FileItem */ items = upload.parseRequest(request,
        yourMaxMemorySize, yourMaxRequestSize, yourTempDirectory);

 

¨í ÀÌ·¸°Ô ÃßÃâµÈ items¸¦ ÀÌÁ¦ ÆûÇʵå ŸÀÔ¿¡ µû¶ó ÀûÀýÈ÷ ó¸® ÇÕ´Ï´Ù.

Iterator iter = items.iterator();
while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();

    // ÆÄÀÏ Å¸ÀÔÀÌ ¾Æ´Ñ ´Ù¸¥ ÆûÇʵå¶ó¸é
    if (item.isFormField()) {
        processFormField(item);

 

    // ÆÄÀÏ Å¸ÀÔ ÆûÇʵå¶ó¸é
    } else {
        processUploadedFile(item);
    }
}

 

¨î ÆûÇʵ忡 µû¸¥ ó¸®

¸¸¾à ÆûÇʵ尡 ÆÄÀÏ ÀÌ¿ÜÀÇ ÆĶó¹ÌÅͶó¸é ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÏ¸é µË´Ï´Ù.

if (item.isFormField()) {
   //ÆĶó¹ÌÅÍ À̸§

    String name = item.getFieldName();          

   //ÆĶó¹ÌÅÍ °ª

    String value = item.getString();              
    ...
}

 

¸¸¾à ÆûÇʵ尡 ÆÄÀÏ ÆĶó¹ÌÅͶó¸é ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÏ¸é µË´Ï´Ù.

if (!item.isFormField()) {

    // ÆĶó¹ÌÅÍ À̸§
    String fieldName = item.getFieldName();

    // ÆÄÀÏ À̸§ (°æ·ÎÆ÷ÇÔ)
    String fileName = item.getName();
    String contentType = item.getContentType();

    // ¾÷·ÎµåÇÑ ÆÄÀÏÀÌ ¸Þ¸ð¸®¿¡ ÀúÀåµÈ »óŸé true, °Å·¸Áö ¾Ê°í Àӽà ÆÄÀÏ·Î ÀúÀåµÈ °æ¿ì false¸¦ ¸®ÅÏ
    boolean isInMemory = item.isInMemory();

    // ÆÄÀÏ»çÀÌÁî
    long sizeInBytes = item.getSize();
    ...

 

   // ÆÄÀÏ °´Ã¼¸¦ Çϳª ¸¸µé¾î ¾÷·Îµå ¿Ï·á!

   File uploadedFile = new File(...);

   item.write(uploadedFile);
}

 

¨ï ÆÄÀÏ ¾÷·Îµå ¹æ½Ä

ÆÄÀÏ ¾÷·Îµå ¹æ½Ä¿¡´Â ¸ðµÎ 3°¡Áö°¡ Á¸ÀçÇÕ´Ï´Ù.

-. FileItem.write(File file);

-. FileItem.getInputStream();

-. FileItem.get()

 

write ´Â Á÷Á¢ÀûÀ¸·Î ¾÷·ÎµåÇÑ ÆÄÀÏÀ» ÀúÀåÇÏ´Â °¡Àå ÀϹÝÀûÀÌ°í °£´ÜÇÑ ¹æ½ÄÀÔ´Ï´Ù.

³ª¸ÓÁö µÎ ¹æ½ÄÀº ½ºÆ®¸²À» »ç¿ëÇÏ¿© ¾÷·ÎµåÇÑ ÆÄÀÏÀÌ ¾î¶² Ưº°ÇÑ Ã³¸®¸¦ ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù.  È¤Àº µ¥ÀÌÅͺ£À̽º¿¡ ¹Ù·Î ÀúÀå ÇÒ °æ¿ì¿¡µµ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ get()Àº ¸Þ¸ð¸®¿¡ ¸ðµÎ ÇÒ´çÇÏ¿© ÀÛ¾÷À» ÇÏ´Ï ÁÖÀǸ¦ ¿äÇÕ´Ï´Ù.

 

 

VI. »ùÇÃÄÚµå

 

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;

 

public class UploadServlet extends HttpServlet {

 

   String upload = null;


   public void init(ServletConfig config) throws ServletException {
      super.init(config);  
      upload = config.getServletContext().getRealPath("/upload/")
   }
 
   public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      try {
  
         if (FileUpload.isMultipartContent(request)) {

            DiskFileUpload fileUload = new DiskFileUpload();
            fileUpload.setRepositoryPath(upload);
            fileUpload.setSizeMax(100*1024*1024);
            fileUpload.setSizeThreshold(1024*50);
    
            List items = fileUpload.parseRequest(request);

 

            Iterator iterator = items.iterator();
            while (iterator.hasNext()) {


                FileItem item = (FileItem) iterator.next();

                if (!item.isFormField()) {
                    if (fileItem.getSize() > 0) {
                        //ÆÄÀÏ À̸§À» °¡Á®¿Â´Ù      
                        String filename = fileItem.getName().substring(fileItem.getName().lastIndexOf("\\")+1);
       
                         try {
                              File file = new File(upload+filename);
                              fileItem.write(file);
                              } catch (IOException e) {
                                   System.out.println(e);
                              }       
                         }
                    }
               }
          }

      } catch (org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException e) {

          // ÆÄÀÏ »çÀÌÁî ÃÊ°ú½Ã ¹ß»ýÇϴ ÀͼÁ¼Ç
          System.out.println("ÆÄÀÏ »çÀÌÁî°¡ 100¸Þ°¡ º¸´Ù ´õ ÃÊ°úµÇ¾ú½À´Ï´Ù");
      } catch (Exception e) {
          System.out.println("¾÷·Îµå½Ã ¿¹±âÄ¡ ¸øÇÑ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù");
      }
   }
}

 

=============================================

º»¹®¼­´Â ÀÚÀ¯·Ó°Ô ¹èÆ÷/º¹»ç ÇÒ¼ö ÀÖÁö¸¸

À̹®¼­ÀÇ ÀúÀÚ¿¡ ´ëÇÑ ¾ð±ÞÀ» »èÁ¦ÇÏ½Ã¸é ¾ÈµË´Ï´Ù

ÀúÀÚ : GoodBug (unicorn@jakartaproject.com)

ÃÖÃÊ : http://www.jakartaproject.com 

=============================================

2009-03-29 20:12:43
211.189.124.***

 

ÁÁÀº»ý°¢ ^^

10Á¡ (1¸í)
µ¡±Û 2°³ | ÅÂ±× 2°³ | °ü·Ã±Ûº¸±â
ű×ÀÔ·Â
½±Ç¥(,)±¸ºÐÀ¸·Î Çѹø¿¡ ¿©·¯ ű׸¦ ÀÔ·ÂÇÒ¼ö ÀÖ½À´Ï´Ù
commons (16) upload (3)
¹Ì¸®³»
(0) (0)
À̰͵µ °¨»ç^^ ¿­½ÉÈ÷ °øºÎÇÏ°Ú½À´Ï´Ù^^
202.211.32.*** 2005-12-09 17:43:41
highharbor
(0) (0)
ÆÄÀϾ÷·Îµå °ü·Ã±Û ¤Ô¤º¤¿¤º´Ù°¡ ¶Ç g~~ooooood~~bug´ÔÀÇ ±ÛÀ» º¸³×¿ä..

¾ä¾ä...


168.188.60.*** 2008-01-10 09:06:02
À̸§ ºñ¹Ð¹øÈ£
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ® ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
! ¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ÀÏÀÚ Á¶È¸
Hierarchy of the Apache Software Foundation GoodBug 2005-10-14 10,814
Jakarta Project °­Á °Ô½ÃÆÇÀÔ´Ï´Ù 8 GoodBug 2005-04-03 11,701
44 Log4J log4j¿¡¼­ e.printStackTrace() ¸Þ½ÃÁö¸¦ log¿¡ ³²±â´Â ¹æ¹ý 1 kaiser 2008-10-22 17,613
43 DBUtils DBUtils¿¡¼­ Clob »ç¿ëÇϱâ 3 1 GoodBug 2007-08-28 10,633
42 Spring Spring ¼³Á¤ ÆÄÀÏ ·Îµù 1 GoodBug 2007-07-16 11,317
41 POI POIÀÇ HSLF¸¦ ÀÌ¿ëÇÏ¿© PowerPoint ¹®¼­¸¦ ÀоÀÚ 2 GoodBug 2007-05-28 14,910
40 POI POIÀÇ HWPF¸¦ ÀÌ¿ëÇÏ¿© MS WORD¹®¼­¸¦ ÀоÀÚ 2 GoodBug 2007-05-28 16,839
39 Validator Validator ¼Ó¼ºµé 1 GoodBug 2007-05-11 10,404
38 dd Commons-Fileupload 1.2 1 2 GoodBug 2007-04-23 15,345
37 Apache Apache2 + Tomcat5.5 + mod_jk 4 ¹ÙÀÌ·¯½ºô¸国 2007-01-29 11,066
36 DBUtils DBUtils¿¡¼­ number ŸÀÔÀÇ Ä÷³ÀÌ intÇüÀ¸·Î ¾È³Ñ¾î¿Ã¶§.. 3 1 GoodBug 2006-06-28 10,755
35 ÈìÈì À§ÇèÇÑ static Logger Çʵå... 2 1 ¼­¿¬¾Æºü 2006-03-16 10,113
34 Installing Tomcat with commons-daemon (jsvc) GoodBug 2006-01-08 9,067
33 commons Commons DbUtils ¸î°¡Áö ¿¹Á¦ 3 2 GoodBug 2005-11-17 15,221
32 commons Jakarta Commons Net ¿¡¼­ FTP »ç¿ë½Ã ¸ñ·ÏÀÌ ¾Èº¸ÀÏ °æ¿ì 2 GoodBug 2005-11-15 21,776
31 listFiles() ¿¡¼­ null À» ¹Ýȯ ÃßÀû.. ½Å¸¸µÎ 2008-11-11 11,866
30 commons ¸ñ·ÏÀÌ ¾Èº¸ÀÏ °æ¿ì ÇØ°á±â Iź 1 2 GoodBug 2005-12-23 15,932
29 POI POI·Î ¿¢¼¿ÆÄÀÏ ÀÐÀ»¶§, Invalid header signature ¿¡·¯ 1 GoodBug 2005-11-12 16,540
28 log4j log4j, JSP¿¡¼­ ¿øÇÏ´Â Appender °ñ¶ó¾²±â 1 GoodBug 2005-11-07 13,894
27 commons Commons-Email~ 7 2 GoodBug 2005-10-13 17,860
copyright 2005-2024 by Unicorn