write.jsp 수정
1. Form 변경
<form name="writeform" method="post" action="write_ok.jsp">
->
<form name="writeform" enctype="multipart/form-data" method="post" action="write_ok.jsp">
2. 파일 추가생성
<tr>
<td> </td>
<td align="center">첨부파일</td>
<td><input type="file" name="file" size=35></td>
<td> </td>
</tr>
<tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr>
==================================================================================================
write_ok.jsp 수정
1. import 추가
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<% request.setCharacterEncoding("euc-kr"); %>
2. 수정코드
<%
// File Upload
String fileurl = application.getRealPath("\\");
String saveFolder = "upload";
String encType = "euc-kr";
int maxSize = 5*1024*1024;
ServletContext context = getServletContext();
try{
MultipartRequest multi = new MultipartRequest(request, fileurl, maxSize, encType, new DefaultFileRenamePolicy());
Enumeration files = multi.getFileNames();
String fileName = "";
String element = (String)files.nextElement();
fileName = (String)multi.getFilesystemName(element);
request.setCharacterEncoding("euc-kr");
String dbUrl = "jdbc:mysql://localhost:3306/board";
Class.forName("com.mysql.jdbc.Driver");
String name = multi.getParameter("name"); // write.jsp에서 name에 입력한 데이터값
String password = multi.getParameter("password");
String title = multi.getParameter("title");
String memo = multi.getParameter("memo");
int max = 0;
try {
Connection conn = DriverManager.getConnection(dbUrl, "root","1234");
Statement stmt = conn.createStatement();
String SQL = "SELECT MAX(ID) FROM BOARD";
ResultSet rs = stmt.executeQuery(SQL);
if(rs.next()){
max = rs.getInt(1);
}
File file = multi.getFile(element);
if(fileName != null && file != null){
String original = multi.getOriginalFileName(element);
String type = multi.getContentType(element);
SQL = "INSERT INTO board(`username`, `password`,`title`, `memo`, `hit`, `ref`, `indent`, `step`, `filename`, `filesize`) VALUES('"+name+"','"+password+"','"+title+"','"+memo+"','0','"+(max+1)+"','0','0','"+fileName+"', '"+file.length()+"') ";
} else {
SQL = "INSERT INTO board(`username`, `password`,`title`, `memo`, `hit`, `ref`, `indent`, `step`) VALUES('"+name+"','"+password+"','"+title+"','"+memo+"','0','"+(max+1)+"','0','0') ";
}
int cnt = stmt.executeUpdate(SQL);
if(cnt > 0) {
if(fileName != null && file != null){
out.println("글 + 파일 업로드가 성공적으로 입력되었습니다.");
} else {
out.println("글 작성이 성공적으로 입력되었습니다.");
}
} else {
out.println("<BR>" + SQL + "<BR>");
out.println("글 작성도중 실패하였습니다.");
}
stmt.close();
conn.close();
} catch(SQLException e){
out.println(e.toString());
}
} catch(Exception ioe) {
out.println(ioe);
}
%>
'JSP > 자료실' 카테고리의 다른 글
MultipartRequest 테스트 (0) | 2014.02.17 |
---|---|
자료실 계획 (0) | 2014.02.17 |