본문으로 바로가기

파일 업로드(Servlet + jsp)

category JSP 2014. 10. 29. 09:22
Servlet -UploadController
@WebServlet("/upload")
@MultipartConfig(location = "D:\\temp\\upload")
public class UploadController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	static Logger logger = Logger.getLogger(UploadController.class);

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public UploadController() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void init(ServletConfig config) throws ServletException {
		super.init(config);

		logger.info("---------------------");
		logger.info("upload test");
		logger.info("---------------------");
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/jsp/uploadform.jsp");
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=utf-8");

		PrintWriter out = response.getWriter();

		if (request.getContentType().startsWith("multipart/")) {

			processParam(request, response); // name = id

			processFile(request, response); // name = file1

		} else {
			out.println("

multipart 형식이 아님

"); } } public void processParam(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Part parm = request.getPart("id"); InputStream in = parm.getInputStream(); InputStreamReader reader = new InputStreamReader(in, "utf-8"); int rtn = -1; String id = ""; while ((rtn = reader.read()) != -1) { id += (char) rtn; } logger.info("id : " + id); request.setAttribute("id", id); } public void processFile(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ServletContext application = getServletContext(); String upLoadDir = application.getRealPath("/upload"); logger.info("/upload 경로 : " + upLoadDir); Part file1 = request.getPart("file1"); String file1_name = file1.getHeader("Content-Disposition"); // 파일 이름을 앞에서부터 검색 int idx = file1_name.indexOf("filename"); logger.info("first index : " + idx); file1_name = file1_name.substring(idx, file1_name.length() - 1); // 파일 이름이 경로로 나올경우 index 로 뒤에서부터 \\ 가 있는곳 까지 검색 idx = file1_name.lastIndexOf("\\"); // (\\)가 있는 곳 까지 검색 if (idx > -1) { // (\\)가 있으면 실행 file1_name = file1_name.substring(idx + 1, file1_name.length()); } logger.info("file1_name : " + file1_name); // log로 파일 이름 확인 logger.info("index : " + idx); // 이름 좌표 확인 file1.write(upLoadDir + "\\" + file1_name); request.setAttribute("model", file1_name); RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/jsp/download.jsp"); rd.forward(request, response); } }
jsp -upload







	

upload test




jsp -download




	

download ${medel }

${id}

${model}

'JSP' 카테고리의 다른 글

window.open 속성  (0) 2015.10.13