반응형

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>&nbsp;</td>

<td align="center">첨부파일</td>

<td><input type="file" name="file" size=35></td>

<td>&nbsp;</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

+ Recent posts