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
반응형