📚Study Note/SpringMVC
클라이언트 측에서 서버로 파일 전송 파일 업로드
칠칠라
2021. 7. 6. 11:59
우선 필요한 jar 파일
Servlets.com | com.oreilly.servlet
servlets.com
root 에
<%@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());
}
%>