Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

기록

JSP 파일업로드 2 본문

JSP

JSP 파일업로드 2

9400 2023. 1. 4. 13:54
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>File Upload</title>
</head>
<body>
<!-- commons-fileupload.jar 오픈 라이브러리
     - 서버(톰캣 컨테이너)의 메모리상에서 파일처리가 가능하도록 지원해줌
     - (JSP)DiskFileUpload 객체사용
     - (SPRING)MultipartFile 객체사용 
     - DiskFileUpload upload...
     - upload.setRepositoryPath(경로) : 업로드된파일을 임시로 저장할 디렉터리 설정
     - upload.setSizeMax(long 최대 파일의 크기)
     - upload.setSizeThreshold(int 메모리상의 저장 최대크기)
     - upload.parseRequest(HttpServletReqest 요청 파라미터를 담은 객체(req))
     - parse : 구문분석/의미분석
			ex)김대리 xml 파싱했나요? xml의 구문과 의미를 분석하여 처리했나요?
     -->

	<!-- 폼페이지 -->
	<form action="fileupload03_process.jsp" method="POST" enctype="multipart/form-data">
		<p>파일 : <input type="file" name="filename"></p>
		<p><input type="submit" value="파일올리기"></p>
	</form>

</body>
</html>

 

데이터처리 

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page import="java.util.List"%>
<%@page import="org.apache.commons.fileupload.DiskFileUpload"%>
<%@page import="java.util.Iterator"%>
<% //스크립틀릿
/* FileItem의 메소드
	* isFormField() : 폼 데이터맞니? 파일 객체가 아닌거맞아? 일반데이터 맞지?
	* getFieldName() : 요청 파라미터 이름을 String으로 리턴
	* getString() : 요청 파라미터의 값을 얻어옴(일반데이터의 경우 name=value에서 value)
	* getName() : 파일의 이름을 가져옴(경로포함) c:_upload_핑구.jpg
	* getSize() : 파일의  크기(개똥이.jpg의 크기)
	get() : 업로드의 파일을 바이트 배열로 얻어옴
	isInMemory() : 메모리에저장되면 true, 임시디렉터리에 저장되면 false
	delete() : 파일 관련 자원 삭제
	* write() : 파일을 저장
	getContentType() : 파일의 컨텐츠 유형 반환(images/jpeg)
*/

	//서버에 저장할 경로설정(윈도우 폴더 경로는 역슬러쉬 두개)
	String fileUploadPath = "C:\\upload";


	DiskFileUpload upload = new DiskFileUpload();
	//upload.parseRequest(HttpServletReqest 요청 파라미터를 담은 객체(req))
	//request내장객체안에 <input type="file" name="filename"> 객체가 들어있음.
	List items = upload.parseRequest(request);
	//열거형으로 데이터를 가져와보자
	Iterator params = items.iterator();
	//params.hasNext() : 폼페이지에서 전송된 요청 파라미터가 더이상 없을때까지 반복
	while(params.hasNext()){
		//폼 페이지에서 전송된 요청 파라미터 오브젝트를 가져옴
		FileItem fileItem = (FileItem)params.next();
		//일반데이터맞지?
		if(!fileItem.isFormField()){ //일반데이터가 아니면 -> 파일데이터이면
			//파일의 이름을 가져옴(클라이언트 경로포함)
			String fileName  = fileItem.getName();
			out.print("fileName(전):"+fileName);
			//C:\\upload\\개똥이.jpg -> 개똥이.jpg
			//파일의 경로를 제외한 순수 파일명만 추출하여 변수에 저장
			fileName.substring(fileName.lastIndexOf("\\")+1);
			out.print("fileName(후):"+fileName);
			//파일 객체 생성(설계도) : 서버에 저장할 경로 및 파일명 설정
			File file = new File(fileUploadPath+"/"+fileName);
			//파일 복사 실행(설계도 구현)
			fileItem.write(file);
		}
	}
%>

 

결과!

c:\\iupload에도 업로드한 파일이 잘 올라와 있는것도 확인 가능하다 

'JSP' 카테고리의 다른 글

JSP 파일업로드 4 (숙제)  (2) 2023.01.04
JSP 파일업로드 3  (0) 2023.01.04
JSP 파일업로드  (0) 2023.01.04
JSP 상품등록 페이지 만들기  (0) 2023.01.03
ckeditor 사용하기  (0) 2023.01.03
Comments