카테고리 없음

[JSP] 이미지 파일 업로드

미니시리 2022. 12. 17. 22:19

dext5 editor에서 이용중에 이미지를 첨부했을 때 원하는 폴더에 저장될 수 있도록 변경 해보려고 했습니다.
다른 방법도 있지만, 기본 upload_handler인 jsp파일에서 바로 업로드를 해보기 위해서 소스를 수정 해 보았습니다.

import 목록

<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>

 

밑에부터는 {% %} 안에 삽입해주면 된다

 

저장 경로 받아오기

ResourceBundle resource = null;

resource = ResourceBundle.getBundle("egovframework.config.config-local");
String LocalPath = resource.getString("upload.image.path");

 

파일 업로드 기능 추가

	try {
		MultipartRequest multi = null;
		multi = new MultipartRequest(request, LocalPath, maxSize, encType, new DefaultFileRenamePolicy());
		
		Enumeration params = multi.getParameterNames();

	    while(params.hasMoreElements()) {
	        String name = (String) params.nextElement();
	        String value = multi.getParameter(name);
	        out.println(name + " = " + value + "<br>");
	    }
		
	    out.println("-------------------<br>");

	    Enumeration files = multi.getFileNames();

	    while(files.hasMoreElements()) {
	        String name = (String)files.nextElement();
	        String filename = multi.getFilesystemName(name);
	        String original = multi.getOriginalFileName(name);
	        String type = multi.getContentType(name);
	        File file = multi.getFile(name);


	        out.println("파라미터 이름" + name + "<br>");
	        out.println("실제 파일 이름" + original + "<br>");
	        out.println("저장된 파일 이름" + filename + "<br>");
	        out.println("파일 타입 이름" + type + "<br>");

		    if(file!= null) {
		        out.println("크기: " + file.length() + "<br>");
		    }
	    }
		
	} catch (IOException ioe) {
		System.out.println("ioe Err: "+ioe);
	} catch (Exception e) {
        out.println("Err: "+e.toString());
    }
  • MultiRequest (javax.servlet.http.HttpServletRequst request,
    java.lang.String saveDirectory,
    int maxPostSize,
    java.lang.String encoding,
    FileRenamePolicy policy)
  • Enumteration getParameterNames() : 전송된 파라미터들의 이름을 Enumeration 타입으로 리턴
  • String getParameter(String name) : 해당하는 이름의 파라미터 값을 리턴
  • String getFilesystemName(String name) : 실제 파일이 업로드된 위치
  • String getOriginalFileName(String name) : 사용자가 폼에서 직접 지정한 파일명 리턴
  • String getContentType(String name) : 업로드 된 파일의 타입
  • File getFile(name) :업로드된 파일 객체를 얻어낼 때 사용