본문 바로가기

개발자이야기/JSP이야기

파일 업로드 파일하나로^^

반응형

<%@ page contentType="text/html; charset=EUC-KR" %>
<%@ page import="java.io.*" %>
<%@ page import="com.oreilly.servlet.*" %>
<%@ page import="com.oreilly.servlet.multipart.*" %>
<%@ page import="java.util.*" %>
<%
    response.setContentType("text/plain");
    //out.println("Demo Upload Servlet using MultipartRequest");
    //out.println();
     
    try {
      // Use an advanced form of the constructor that specifies a character
      // encoding of the request (not of the file contents) and a file
      // rename policy.
     
      String dirName = session.getServletContext().getRealPath("");

   System.out.println("★★★★★★★★★★★★★★ dirName = "+dirName);
     
   dirName = dirName.substring(dirName.indexOf(":") + 1,dirName.length());
      dirName = dirName.replace('\\','/');
      dirName = dirName.substring(0,dirName.lastIndexOf("/"));
      dirName += request.getServletPath();
      dirName = dirName.substring(0,dirName.lastIndexOf("/"));
     

   System.out.println("###### dir name 0 : " + dirName); //dirName는 파일 업로드 폴더(절대패스)


      // "ISO-8859-1"
      MultipartRequest multi =
        new MultipartRequest(request, dirName, 10*1024*1024,"euc-kr", new DefaultFileRenamePolicy());
        //위구문에서 이미 파일은 저장된다.

  
  
   out.println("PARAMS:");

   Enumeration params = multi.getParameterNames();
      while (params.hasMoreElements()) {
        String name = (String)params.nextElement(); //파라미터 이름을 얻는다.
        String value = multi.getParameter(name); //getParameter("이름"); 이런거와 같다.
        out.println(name + "=" + value);
      }
      out.println();


   //위의 문자 아래와 같이 쓴거와 같다고 생각해라

   //String fBunryubunho   = multi.getParameter("fBunryubunho");
   //String fDomyunmyung   = multi.getParameter("fDomyunmyung");
   //String fBujemok     = multi.getParameter("fBujemok");
   //String fDomyunBunho   = multi.getParameter("fDomyunBunho");
   //String fBangchiimGG   = multi.getParameter("fBangchiimGG");
   //String fBangchiimDate  = multi.getParameter("fBangchiimDate");
   //String fGyejungYY    = multi.getParameter("fGyejungYY");
   //String fBigo      = multi.getParameter("fBigo");
   //String fBangchim_id   = multi.getParameter("fBangchim_id");

             

//이구문은 단지 파일이름을 추출하는정도..껄..
      out.println("FILES:");
   Enumeration files = multi.getFileNames();    
  
  while (files.hasMoreElements())
  {
   String name = (String)files.nextElement();
   String filename = multi.getFilesystemName(name);
   String originalFilename = multi.getOriginalFileName(name);
   String type = multi.getContentType(name);
   File f = multi.getFile(name);
   out.println("name: " + name);
   out.println("filename: " + filename);
   out.println("originalFilename: " + originalFilename);
   out.println("type: " + type);
   if (f != null)
   {
     out.println("f.toString(): " + f.toString());
     out.println("f.getName(): " + f.getName());
     out.println("f.exists(): " + f.exists());
     out.println("f.length(): " + f.length());
   }
   out.println();
   }
    }
    catch (IOException lEx) {
  lEx.printStackTrace();
    }
 %>

반응형