게시판에서 그림등의 파일을 올릴때 필요한 jsp 파일업로드 기능을 알아보겠습니다.
jsp와 java servlet을 이용하여 웹페이지를 구축할 때 파일업로드 기능이 필요할 때가 있습니다. 이때는 MultipartRequest 라는 객체를 이용하여 기능을 구현할 수 있습니다.
그래서 프로젝트 내부에 업로드에 필요한 jar파일을 추가해 줘야 합니다.
COS.jar 파일 받기
위의 경로로 들어가시면 파일을 받으실 수 있는데요.
웹사이트에 접속하신 뒤에 화면에서 마우스 스크롤을 조금만 내리시면 cos-~~~~.zip 파일이 있습니다.
파일을 다운받으시고 압축풀면 cos.jar파일이 나옵게 됩니다. 바로 이 파일이 jsp 파일 업로드에 사용할 jar 파일 입니다.
jar 파일 복사하기
업로드를 구현할 프로젝트의 web-inf/lib 에 복사해 줍니다.
위는 다이나믹 웹 프로젝트의 구조이며 cos.jar의 복사가 완료된 상태입니다.
Upload.jsp 파일
<body> <form action ="upload" name="frm" method="post" enctype="multipart/form-data"> <table border="1" style="text-align: center"> <tr><td>앨범이미지</td><td><input type="file" name="albumimage"></td></tr> <tr><td>음악파일</td><td><input type="file" name="musicfile"></td></tr> <tr><td colspan="3"><input type="button" value="업로드"></td></tr> </table> </form> </body>
화면단에 파일 업로드 기능을 구현하기 위해 form에 enctype=”multipart/form-data” 형태를 지정해 줍니다.
uploadcontroller.java
public class uploadcontroller extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { MultipartRequest mr = new MultipartRequest (req, "C:\\upload\\", 1024*1024*10, "EUC-KR", new DefaultFileRenamePolicy()); // (요청객체, 파일이 쓰여질 경로, 파일의 최대크기, 인코딩방식, 파일명이 이미 있을 경우 '파일명+1') File image = mr.getFile("albumimage"); // image에 파일의 이름을 담음 File music = mr.getFile("musicfile"); System.out.println(image); System.out.println(music); } }
실행 결과
프로젝트를 실행 후 메인 화면 모습입니다.
이곳에서 찾아보기 버튼을 누르면 탐색기가 열리는데요. 업로드할 파일을 지정한 뒤 업로드 버튼을 누릅니다
업로드 후 Console 화면입니다.
c드라이브에 해당 파일이 제대로 업로드가 되었는지 확인해 보겠습니다.
파일이 c드라이브 해당 경로에 제대로 저장된 모습입니다. 또한, 이미 같은 파일이 있기 때문에 new DefaultFileRenamePolicy()정책으로 파일에 숫자1이 추가된 모습입니다.
이렇게 jsp 파일업로드 기능을 구현해 봤는데요. 이런식으로 이미지나 mp3 파일을 손쉽게 업로드 할 수 있으니 개인적으로 구현해 보시기 바랍니다.
답글 남기기