카테고리 없음
fileupload
설총이
2018. 7. 27. 11:05
- fileupload.form
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page contentType="text/html; charset=UTF-8"%> <!DOCTYPE html> <html> <head> <title>multipart 폼</title> </head> <body> <form action = "fileupload_Pro.jsp" method = "post" enctype = "multipart/form-data"> text1 : <input type = "text" name = "text1" /><br/> file1 : <input type = "file" name = "file1"/><br/> file2 : <input type = "file" name = "file2"/><br/> <input type = "submit" value = "전송"/> </form> </body> </html> | cs |
- fileupload_jsp
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <%@ page contentType="text/html; charset=UTF-8"%> <%@ page import = "java.util.Iterator" %> <%@ page import = "java.util.List" %> <%@ page import = "java.io.*" %> <%@ page import = "org.apache.commons.fileupload.FileItem" %> <%@ page import = "org.apache.commons.fileupload.disk.DiskFileItemFactory" %> <%@ page import = "org.apache.commons.fileupload.servlet.ServletFileUpload" %> <!DOCTYPE html> <html> <head> <title>업로드 정보</title> </head> <body> <% //1. multipart/form-data여부 확인 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if(isMultipart){ //2. 메모리나 파일로 업로드 데이터를 보관하는 FileItem의 Factory 설정 DiskFileItemFactory factory = new DiskFileItemFactory(); //파일 객체를 만듬. //3. 업로드 요청을 처리하는 ServletFileUpload 생성 ServletFileUpload upload = new ServletFileUpload(factory); // 업로드 요청을 처리해줄수있는객체 upload.setHeaderEncoding("utf-8"); //4. 업로드 요청 파싱해서 FileItem 목록 구함 List<FileItem>items = upload.parseRequest(request); //요청된 모든 파라미터값을 FileItem객체로 만든다(여기선 3개가 만들어진다) Iterator<FileItem>iter = items.iterator(); while(iter.hasNext()){ FileItem item = iter.next(); //5. FileItem이 폼 입력 항목인지 여부에 따라 알맞은 처리 if(item.isFormField()){ // true면 값이 하나인 일반파라미터 , false면 file타입인 파라미터 String name = item.getFieldName(); String value = item.getString("utf-8"); %> 요청 파라미터 : <%=name %> = <%=value %><br/> <% }else{ String name = item.getFieldName(); //input 태그의 name값 String fileName = item.getName(); //업로드한 파일의 이름 , 공통된 이름이 있으면 덮어쓰기가 된다. String contentType = item.getContentType(); //업로드한 파일의 타입 boolean isInMemory = item.isInMemory(); // 메모리에 저장 : true , 임시경로에 저장 : false long sizeInBytes = item.getSize(); // 업로드된 파일의 크기 File file = new File("d://item/"+fileName); //이 경로로 파일을 만들어주는 객체생성 item.write(file); //임시디렉토리나 메모리에 업로드되어있는 파일을 이 경로에 이동시켜줌 %> 파일 : <%=name %>, <%=fileName %>, <%=sizeInBytes %>, <%=contentType %> <%= isInMemory ? "메모리저장" : "임시파일저장" %><br/> <% } } }else{ // multipart/form 아님 %> multipart/form 요청이아님. <%} %> </body> </html> | cs |