본문 바로가기

📚Study Note/SpringMVC

클라이언트 측에서 서버로 파일 전송 파일 업로드

우선 필요한 jar 파일

http://servlets.com/cos/

 

Servlets.com | com.oreilly.servlet

 

servlets.com

다운로드 받아서 압축해제 한 후 lib 파일에 추가를 해주고 본격 작업 시작!
이름과 파일을 업로드 할 수 있는 VIEW 페이지를 만들어준다. 

 

root 에

그러면 서버의 지정해둔 path 로 디렉터리가 생성되고 그 안에 이미지 파일이 업로드되게 된다. 

<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page import="java.io.File"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%

	// Test4.jsp //본격적으로 cos.jar 파일 다운로드 하고 실습 진행
	request.setCharacterEncoding("UTF-8");
	String cp = request.getContextPath();
	
	/* String root  = request.getRealPath("/") */
	String root = pageContext.getServletContext().getRealPath("/");/* 두개는 같은 코드인데 위에는 예전 방식이다. 지금은 pageContext로부터 서블릿 얻고 realpath */
	
	// 실제 물리적 주소
	System.out.println(root); // web에서 실행하고 console 창에서 확인
	//C:\SpringMVC\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\FileSystemApp03\
	
	
	
	// 저장되는 위치와 폴더
	String path = root + "pds" + File.separator + "saveData";
	// /pds/savdData
	
	// 확인
	//System.out.println(path);
	
	
	// 저장 대상(디렉터리 경로)이 존재하지 않으면 생성
	File dir = new File(path);
	if(!dir.exists())
		dir.mkdirs();
	
	String encType = "UTF-8";
	int maxFileSize = 5*1024*1024; // 전송 최대 사이즈 5M
	
	try
	{
		MultipartRequest req = null;
		req = new MultipartRequest(request, path, maxFileSize, encType, new DefaultFileRenamePolicy()); // 요청개수, 저장할 경로, 최대사이즈, 인코딩타입, 파일이름 중복될때 사진1,jpg 있으면 사진2.jpg만들어줌
		
		out.println("이름  : " + req.getParameter("name") + "<br>");
		out.println("서버에 저장된 파일명 : " + req.getFilesystemName("upload")+"<br>");
		out.println("업로드한 파일 명 : " + req.getOriginalFileName("upload") + "<br>");
		out.println("파일 타입 : " + req.getContentType("upload") + "<br>" );
		
		File file = req.getFile("upload");
		if(file != null)
			out.println("파일 길이 : " + file.length() + "<br>");
		
	}catch(Exception e)
	{
		
		System.out.println(e.toString());
	}
	
%>