[Servlet]File

UnKnown_7·2022년 10월 5일

JSP&Servlet

목록 보기
13/13

File Upload

@MultipartConfig

  • 서블릿에서의 파일 업로드를 위한 설정
  • location: 파일이 업로드 될 경로(String)
  • maxFileSize: 업로드 가능한 파일의 최대 크기(long)
  • maxRequestSize: 요청에 포함된 업로드 파일의 최대 크기(long)
  • fileSizeThreshold: 파일 업로드 시 사용할 임시 메모리의 크기(int)

예시
서블릿 어노테이션 아래 혹은 위에 지정한다.

@WebServlet("/fileUpload")
@MultipartConfig(
    location = "C:\\upload",
    maxFileSize = 1024 * 1024 * 10,
    maxRequestSize = 1024 * 1024 * 100,
    fileSizeThreshold = 1024 * 1024
)

Part

  • 파일 업로드를 위한 객체
  • .getHeader(String name): 헤더 정보를 가져온다.
    • 출력형태: form-data; name="file"; filename="test.txt"

Part에서 파일명 가져오기

Part part =request.getPart("uploadFile"); //request getparameter과 동일
String ContentType = part.getHeader("Content-Disposition");
ContentType.trim();
ContentType = ContentType.substring(ContentType.indexOf("filename=")+10);
ContentType = ContentType.substring(0,ContentType.indexOf("\""));

최종 업로드

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();

  Part part =request.getPart("uploadFile"); //request getparameter과 동일
  String ContentType = part.getHeader("Content-Disposition");
  int hpos = ContentType.indexOf("filename=")+10;
  String orgName = ContentType.substring(hpos);
  orgName = orgName.substring(0,orgName.indexOf("\""));

  String folder = "C:\\DEV\\Github\\Megazone_lecture\\upload_files";
  String filePath = folder + "\\" + orgName;
  part.write(filePath);

  out.print(orgName);


  }
profile
개인 공부 요약용 블로그

0개의 댓글