JSP 9강 - form, 파일 업로드

Whatever·2022년 1월 11일
0

JSP

목록 보기
9/30

폼태그 정리2

  1. form 태그를 이용하여 다음을 처리해보자


    1) form03.jsp 파일 생성
  • input 태그 내에 text 유형을 이용하여 이름, 주소, 이메일 항목 작성
  • form 태그의 action 속성 값은 form03_process.jsp로 작성
    2) form03_process.jsp 파일 생성
  • request 내장 객체의 getParameter() 메소드를 이용하여 전송된 요청 파라미터 값을 받음
  • out.print를 통해 전송된 요청 파라미터 값을 화면출력해보자.
  1. form 태그를 이용하여 다음을 처리해보자
    1) form04.jsp 생성
  • input 태그 내에 checkbox 유형을 이용하여 오렌지, 사과, 바나나 항목 작성

  • form 태그의 action 속성의 값은 form04_process.jsp
    2) form04_process.jsp 파일 생성

  • request 내장 객체의 getParameterValues() 메소드를 이용하여 파라미터 값을 전달받아 화면에 출력해보자

    파일업로드 - 다운받기 MVNrepository


    lib에 jar파일 넣기,
    Tomcat에 library 넣기

    클라이언트 파일을 복사해서 서버의 경로로 붙여넣기 하는 작업 - library이용해서 편리하게 저장 가능

fileupload01_process.jsp

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="java.util.Iterator"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="org.apache.commons.fileupload.DiskFileUpload"%>
<%@page import="org.apache.commons.fileupload.DiskFileUpload.*"%>
<%@page import="java.util.List"%>
<!DOCTYPE html>
<html>
<head>
<title>File Upload</title>
</head>
<body>
<%
	//파일이 저장되는 경로
	String path = "C:\\upload";
	
	DiskFileUpload upload = new DiskFileUpload();
	//업로드할 파일의 최대 크기(1M) 
	upload.setSizeMax(1000000);
	//메모리상에 저장할 최대 크기
	upload.setSizeThreshold(4096);
	//업로드된 파일을 임시 저장
	upload.setRepositoryPath(path);
	//파싱 : 구문분석 + 의미분석
	//items 안에는 파일객체 + 폼 데이터가 섞여있음
	List items = upload.parseRequest(request);
	
	Iterator params = items.iterator();
	//폼 페이지에서 전송된 요청 파라미터가 없을 때까지 반복
	while(params.hasNext()){
		//전송된 요청 파라미터의 이름을 가져오도록 Iterator 객체 타입의 
		//next() 메소드 사용
		FileItem item = (FileItem)params.next();
		
		if(item.isFormField()){ //요청 파라미터가 일반 데이터(text, checkbox, radio..)
			//?id=a001
			String name = item.getFieldName(); //id
			String value = item.getString("UTF-8"); //a001
			out.print(name = "=" + value +"<br />");
		}else{ //폼 페이지에서 전송된 요청 파라미터가 파일(input type='file')
			//요청 파라미터의 이름
			String fileFieldName = item.getFieldName();
			//저장 파일 이름
			String fileName = item.getName();
			//파일 콘텐츠 유형
			String contentType = item.getContentType();
			
			out.print(fileFieldName + "=" + fileName +"(" + contentType +")");
			//파일 이름만 가져오기
			//켄싱.jpg가 됨
			fileName.substring(fileName.lastIndexOf("\\") + 1);
			long fileSize = item.getSize();
			//java.io.file => 파일 객체 생성
			File file = new File(path + "/" + fileName);
			//여기서 실제로 파일 생성(복사 완료)
			item.write(file);
			
			
		}
	}
%>
</body>
</html>

0개의 댓글