IT&코딩/국비지원

Servlet - 5 (파일업로드)

솔론 2023. 6. 13. 20:37
728x90
반응형

기존의 파일업로드와 다르게 wabapp 아래에 upbang이라는 폴더를 만들어 업로드 하는 파일을 저장해보자.

 

□ fileupload.html

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>file upload</title>
</head>
<body>
<h2>파일  업로드하기 </h2>
<form method="post"  action="Kajafileupload"
                               enctype=multipart/form-data>
이름 <input type="text" name="irum" ><br>
업로드할 파일 1 <input type="file" name="upfile1"><br>
업로드할 파일 2 <input type="file" name="upfile2"><br>
업로드할 파일 3 <input type="file" name="upfile3"><br>
<input type="submit" value="가자 업로드~">
</form>
</body>
</html>

 

■ com.jun.my 

 

□ Kajafileupload.java

 

package com.jun.my;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

/**
 * Servlet implementation class Kajafileupload
 */
@WebServlet("/Kajafileupload")
public class Kajafileupload extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Kajafileupload() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
				 //response.getWriter().append("Served at: ").append(request.getContextPath());
				 request.setCharacterEncoding("utf-8");
				 response.setCharacterEncoding("utf-8");
				 response.setContentType("text/html; charset=utf-8");
			     PrintWriter out = response.getWriter();
			 
			     //--------------------------------------------------------
			     String bang = "upbang"; //WebContent아래에 upbang을 미리 만든다
			     ServletContext context = getServletContext();
			     String jeojang = context.getRealPath(bang);
			      
			     out.println(context.getRealPath(bang));//실제에서는 이것 주석달고 한다  
			     // ==>(실제결과) ~ ~ .metadata\.plugins\org.eclipse.wst.server.core
			     //     \tmp0\wtpwebapps\프로젝트명\ upbang에 들어간다*/ 
			     //cf.실행후 url은  http://localhost:8180/프로젝트명/fileupload.html
			     //-------------------------------------------------------------
			
			     out.print(request.getContentType()); 
			      
			     //업로드는 해당 워크스페이스 - .metadata ~~~~~~~/upbang 에 들어감 
			      
			     try{MultipartRequest mr1 = new MultipartRequest(request,jeojang,
		            		  100*1024*1024,"utf-8", new DefaultFileRenamePolicy());
			     
			 	 out.print("<h1> 파일 업로드 굿드</h1>"+"<br>");      
			 	 //cf. Iterator가 최근버전   
			     Enumeration em1 = mr1.getFileNames();
			     
			     while(em1.hasMoreElements()){ //while() 시작
			        
			    	String filename1 = (String)em1.nextElement();
			        String orifilename1 = mr1.getOriginalFileName(filename1); 
			        String upfilename1 = mr1.getFilesystemName(filename1);
			       
			        // String juso = "http://localhost:8180/실제프로젝트명/upbang/"+upfilename1;	
			        // 실행시 나오는 url참조 //http://localhost:8180/프로잭트명/kajafileupload~~~
			        
			        File f1 = mr1.getFile(filename1);
		            if(f1 != null){
			         out.print("원래 파일명 : " + orifilename1 + "<br>");
			         out.print("업로드 파일명 : " + upfilename1 + "<br>");  
			        }                                                              
			     }// while-end 
			     
			     
			     }catch(Exception e) { 
			      out.print("에러"); 
			      e.printStackTrace();
			     }
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
728x90
반응형