-
webcontent에 file 이라는 폴더 만들기. upload.jsp 생성
-
cos.jar 라는 라이브러리 파일을 lib 폴더에 넣음.
-
com.file 패키지 만들고 FileUploadAction.java 서블릿 생성 (경로는 /file/upload.do)
-
WebContent안에 upload폴더를 만들기 (파일 저장 경로)
-
upload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="upload.do" enctype="multipart/form-data">
글쓴이: <input type="text" name="name"><br>
제목: <input type="text" name="title"><br>
파일 지정하기: <input type="file" name="uploadFile"><br>
<input type="submit" value="전송">
</form>
</body>
</html>
-
FileUploadAction.java
package com.file;
import java.io.IOException;
import java.io.PrintWriter;
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 FileUploadAction
*/
@WebServlet("/file/upload.do")
public class FileUploadAction extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FileUploadAction() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
int uploadFileSizeLimit=5*1024*1024; //5mb로 지정
String encType="UTF-8";
String savePath="upload";
ServletContext context=getServletContext();
String uploadFilePath=context.getRealPath(savePath);
System.out.println("서버 상의 실제 디렉토리: "+uploadFilePath);
//multipart/form 방식은 request.getParameter로 받아올 수 없음
MultipartRequest multi=new MultipartRequest(
request, //request객체
uploadFilePath, //서버상의 실제 디렉토리
uploadFileSizeLimit, //최대 업로드 파일 크기
encType, //인코딩 방법
new DefaultFileRenamePolicy()); //동일 파일 새이름 부여
//업로드된 파일이름 구하기
String fileName=multi.getFilesystemName("uploadFile");
System.out.println("fileName:"+fileName);
if(fileName==null) { //파일 업로드 안됨
System.out.println("파일 업로드 되지 않았음");
}else {
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.println("<b>글쓴이: "+multi.getParameter("name")+"<br>");
out.println("<b>제목: "+multi.getParameter("title")+"<br>");
out.println("<b>파일명: "+fileName);
}
}
}
'Learning > JSP' 카테고리의 다른 글
JSP 개인프로젝트-영어 학습 사이트 만들기 (관리자 기능) (0) | 2020.08.18 |
---|---|
JSP 개인프로젝트-영어 학습 사이트 만들기 (로그인, 회원가입) (0) | 2020.08.18 |
게스트북 (평가리스트) 만들기 (0) | 2020.08.06 |
로그인, 회원가입, 게시판 만들기 2 (0) | 2020.07.30 |
로그인, 회원가입, 게시판 만들기 1 (0) | 2020.07.29 |