JSP

211021_파일입출력(여러개)

요옫 2021. 10. 21. 12:28

uploadform2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

<title>Insert title here</title>

</head>

<body>

<form action="uploadaction2.jsp" method="post" enctype="multipart/form-data">

  <table class="table table-bordered" style="width: 400px;">

    <caption>여러개 이미지 업로드</caption>

    <tr>

      <th width="100">작성자</th>

        <td>

          <input type="text" name="writer" class="form-control" style="width: 120px;">

        </td>

    </tr> 

    

    <tr>

      <th width="100">이미지</th>

      <td>

        <input type="file" name="photo1" class="form-control">

        <input type="file" name="photo2" class="form-control">

        <input type="file" name="photo3" class="form-control">

      </td>

    </tr> 

    

    <tr>

      <td colspan="2" align="center">

        <input type="submit" class="btn btn-info">서버로 업로드하기       

      </td>

    </tr>

  </table>

</form>

</body>

</html>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

uploadaction2.jsp

<%@page import="java.util.Enumeration"%>

<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>

<%@page import="com.oreilly.servlet.MultipartRequest"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

<title>Insert title here</title>

</head>

<body>

<%

MultipartRequest multi=null;

 

//톰캣에 업로드된 프로젝트 경로구하기

ServletContext context=getServletContext();

//프로젝트의 save2의 실제경로 구한다

String realFolder=context.getRealPath("/save(1021)");

 

System.out.println(realFolder);

 

//업로드시 허용크기

int uploadsize=1024*1024*3;  //3mb

 

try{

multi=new MultipartRequest(request,realFolder,uploadsize,"utf-8",

new DefaultFileRenamePolicy());

 

//입력한 값들 읽어오기

String writer=multi.getParameter("writer");

%>

 

<h2>작성자: <%=writer %></h2>

<%

//파일이 여러개인 경우

Enumeration formNames=multi.getFileNames();  //file타입만 얻어온다

 

while(formNames.hasMoreElements()){  //없을 때까지 while

//파일태그 네임 얻기

String fileName=(String)formNames.nextElement();

    System.out.println("file type의 name: "+fileName);

    

//실제업로드된 파일명 얻기

    String uploadfilename=multi.getFilesystemName(fileName);

 

//파일선택을 안했을 경우 null값

    if(uploadfilename!=null)

    {%>

    <figure>

      <img alt="" src="../save(1021)/<%=uploadfilename%>" style="max-width: 200px; border: 1">

      <figcaption><b><%=uploadfilename %></b></figcaption>

    </figure>

    <%}

}

%> 

<%} catch(Exception e){

}%>

</body>

</html>