폼태그 정리2
input 태그 내에 checkbox 유형을 이용하여 오렌지, 사과, 바나나 항목 작성
form 태그의 action 속성의 값은 form04_process.jsp
2) form04_process.jsp 파일 생성
request 내장 객체의 getParameterValues() 메소드를 이용하여 파라미터 값을 전달받아 화면에 출력해보자
파일업로드 - 다운받기 MVNrepository
lib에 jar파일 넣기,
Tomcat에 library 넣기
클라이언트 파일을 복사해서 서버의 경로로 붙여넣기 하는 작업 - library이용해서 편리하게 저장 가능
<%@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>