210527_1(자료실게시판)
일반형 게시판------------------->자료실 게시판으로 변형
클라이언트 / 웹브라우져 / 자료실업로드 폼
-------------------------------------------------
<form enctype="multipart/form-data"> <== enctype 속성이 추가된다
텍스트가 아닌 데이타가 들어있으니 준비하라
기타 다른 요소들이 있고
<input type="file" name="upfile"> <== 파일 선택하는 창이 뜬다.
</form>
-------------------
받는쪽
request.getParameter("upfile"); <=== 이게 안된다. request사용불가
그럼 어떻게
업로드 컴포넌트를 이용해서 받는다. : jspsmartupload <--지금 / cos.jar <--쇼핑몰게시판할때
업로드 컴포넌트의 역할
리퀘스트 영역에 안들어 가고 temp영역에 들어간다.
임의의 영역에 저장된 폼데이터를 파일데이타에서 선택하여 지정된(서버의 자료실)폴더로 파일을 복사하거나 이동시키는 역할을 한다.
나머지 데이타(파일정보포함)들은 sql과 함께 실행하여 db에 저장 시킨다.
------------------------프로젝트생성
필요한것
1. 자료실 폴더를 지정한다.(리눅스인 경우 쓰기권한필요)
C:\Java_bigdata\mywork_jsp\myBoardMvc1OraUP\WebContent\data
이경우 물리적 경로가 필요한데, 꼭 웹 디렉토리 하단에 위치를 할 필요는 없다.
가상경로는 <--웹하부만 가르킬수 있다. 그래서 물리적 경로 필요하다.
2. 업로드 컴포넌트의 준비
/WEB-INF/lib/smartupload.jar
------------------------------- 구현
84줄 getFile(0) <--첨부된 첫번째 파일
91줄 중복이름 처리하는 로직
108. 지정된 장소(loadfile)에 저장하시오
디비에저장해야되기때문에 이름과 크기만 따로 변수에넣음
Create Table boardUp(
idx int primary key,
name varchar(10),
email varchar(50),
homepage varchar(50),
title varchar(50),
content varchar(10),
pwd varchar(10),
wdate date,
filename varchar(50) default null,
filesize int default null,
hit int
);
create sequence boardUp_idx_seq increment by 1 start with 1;
select * from tab;
write.jsp 추가
<TR>
<TD> 파일첨부</TD>
<TD><input NAME="file" type="file" size="40"></TD>
</TR>
write_ok.jsp
<%@ page language="java"%>
<%@ page contentType="text/html;charset=euc-kr"
import="com.jspsmart.upload.*"%>
<jsp:useBean id="smart" scope="page"
class="com.jspsmart.upload.SmartUpload" />
<jsp:useBean id="boardBean" class="board.BoardBean" />
<jsp:setProperty name="boardBean" property="*" />
<jsp:useBean id="boardQuery" class="board.BoardQuery"></jsp:useBean>
<%
boardQuery.boardInsert(boardBean);
%>
<% //////////////////////자료를 올리는 부분///////////////
String filename = "";
int filesize = 0;
smart.initialize(pageContext);
smart.upload();
com.jspsmart.upload.File upfile = smart.getFiles().getFile(0);
if (!upfile.isMissing()) {
String filecheck = upfile.getFileName();
//out.print(filecheck+"<br>");
boolean fcount = true;
while (fcount) {
java.io.File file = new java.io.File(
"C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + filecheck);
//java.io.File file = new java.io.File(request.getRealPath("/board_up/data")+"\\"+filecheck);
if (file.exists()) {
filecheck = "r_" + filecheck;
} else {
fcount = false;
}
}
String loadfile = "C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + filecheck;
//String loadfile = request.getRealPath("/board_up/data")+"\\"+filecheck;
out.print(loadfile + "<br>");
upfile.saveAs(loadfile); //최상위부터 잡을것
filesize = upfile.getSize();
filename = filecheck;
}
////////////////////////////디비에 입력되는 부분
/*
boardBean.setName(smart.getRequest().getParameter("name"));
boardBean.setEmail(smart.getRequest().getParameter("email"));
boardBean.setHomepage(smart.getRequest().getParameter("homepage"));
boardBean.setTitle(smart.getRequest().getParameter("title"));
boardBean.setContent(smart.getRequest().getParameter("content"));
boardBean.setPwd(smart.getRequest().getParameter("pwd"));
boardBean.setFilename(filename);
boardBean.setFilesize(filesize);
///////////////////// 처리 메서드 호출 여기
boardQuery.boardInsert(boardBean);
*/
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.location.href = "list.jsp";
//-->
</SCRIPT>
BoardQuery.java
143~4테이블명과 시퀀스명 변경
174-5,180 filename,filesize추가
디비의데이터는 select 문날려서 확인
BoardQuery 수정
public class BoardQuery {
String board = " boardUp "; // 테이블 명
String idxNum = " boardUp_idx_seq.nextval " ; // 자동증가 이름
ConnectionPool pool =null ;
// 객체가 생성될때 연결합
public BoardQuery() {
try {
pool = ConnectionPool.getInstance();
} catch (Exception e) {
// TODO: handle exception
System.out.print("연결 실패") ;
}
} // BoardQuery()
public void boardInsert(BoardBean boardBean) throws SQLException{
////////////////////////////////////////////////pooling
ConnectionPool pool = ConnectionPool.getInstance();
Connection conn = pool.getConnection();
Statement stat = conn.createStatement();
String sql ="";
String name=boardBean.getName();
String email=boardBean.getEmail();
String homepage=boardBean.getHomepage();
String title=boardBean.getTitle();
String content=boardBean.getContent();
String pwd=boardBean.getPwd();
String filename = boardBean.getFilename();
int filesize = boardBean.getFilesize();
try{
sql = "insert into "+board+" values("+idxNum+",'"+name+"','"
+email+"','"+homepage+"','"+title+"','"+content+"','"
+pwd+"',sysdate,'"+filename+"',"+filesize+"0)" ;
//sql =new String(sql.getBytes("8859_1"),"euc-kr");
//System.out.print(sql);
stat.executeUpdate(sql) ;
}catch(Exception e){
System.out.println(e);
}finally{
// rs.close();
stat.close();
pool.releaseConnection(conn);
}
} //boardInsert()
list.jsp
208 , 226
276. Query 파일명 더 꺼내기
list.jsp 수정
<TABLE width="550" align="center" border="1">
<TR>
<TD width="10%" bgcolor="#CCCCCC"> 번호</TD>
<TD width="17%" bgcolor="#CCCCCC"> 일자</TD>
<TD width="40%" bgcolor="#CCCCCC"> 제목</TD>
<TD width="10%" bgcolor="#CCCCCC"> 파일</TD>
<TD width="13%" bgcolor="#CCCCCC"> 이름</TD>
<TD width="10%" bgcolor="#CCCCCC"> 조회</TD>
</TR>
<%
Vector listVector = boardQuery.getBoardList(offset,limit);
// JSP 빈에서 가져와서 뿌리기
for(int k=0; k<listVector.size(); k++){
BoardBean boardBean=(BoardBean)listVector.elementAt(k);
%>
<TR>
<TD> <%=boardBean.getIdx()%></TD>
<TD> <%=boardBean.getWdate()%></TD>
<TD> <A HREF="content.jsp?idx=<%=boardBean.getIdx()%>"><%=boardBean.getTitle()%></A></TD>
<TD> <%=boardBean.getFilename()%></TD>
<TD> <%=boardBean.getName()%></TD>
<TD> <%=boardBean.getHit()%></TD>
</TR>
쿼리수정
public Vector getBoardList(int offset, int limit) throws SQLException{
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
String sql=null;
Vector boardList = new Vector();
try {
conn = pool.getConnection();
stat = conn.createStatement();
sql = " select a.* " +
" from ( " +
" select ROWNUM as RNUM, b.* " +
" from ( " +
" select * " +
" from "+board+" " +
" order by idx desc " +
" ) b " +
" ) a " +
" where a.RNUM > " + offset + " " +
" and a.RNUM <= " + (offset + limit) + " " ;
rs = stat.executeQuery(sql);
while(rs.next()){
BoardBean boardBean = new BoardBean();
boardBean.setIdx(rs.getInt("idx"));
boardBean.setHit(rs.getInt("hit"));
boardBean.setName(rs.getString("name"));
boardBean.setEmail(rs.getString("email"));
boardBean.setHomepage(rs.getString("homepage"));
boardBean.setTitle(rs.getString("title"));
String content = rs.getString("content");
content = content.replaceAll("\n","<br>");
boardBean.setContent(content);
boardBean.setWdate(rs.getString("wdate").substring(0, 10)) ;
boardBean.setFilename(rs.getString("filename"));
boardList.add(boardBean);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
rs.close();
stat.close();
pool.releaseConnection(conn);
}
return boardList ;
} // getBoardList()
content.jsp
단순링크
href="./data/<%=boardBean.getFilename()%>" 또는 '<%="./data/"boardBean.getFilename()%>'
웹브라우저가 인식하는 문서는 화면에 열리고, 인식하지 못하는 문서는 다운로드가 일어난다.
주의 : <a href="c:\\aa\bb\파일" <=== 물리적 경로 사용은 절대 금지
단점 : 자료실의 위치가 노출됨 --> 보안이 약화됨
download2.jsp
파일 링크하는 곳에서 UTF 또는 EUCK로 인코드 해서 전달한다.
개선 : 파일의이름만 다운로드 페이지로 전송함
장점: 자료실의 경로를 감출수 있다
alldownload.jsp
파일 링크하는 곳에서 utf-8로 인코드 해서 전달한다.
무조건 다운로드 시키기 : 웹브라우져가 파일을 인식하지 못하면 다운로드 시킨다는 원리
"응용프로그램"
content.jsp 추가
<tr>
<td>첨부파일</td>
<td><a href= "./data/<%=boardBean.getFilename()%>"><%=boardBean.getFilename()%></a>
<%=boardBean.getFilesize()%>byte</td>
<%@ page language="java" %>
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ include file= "style.inc" %>
<%@ page import = "board.*,java.net.*" %>
<jsp:useBean id="boardBean" class="board.BoardBean"></jsp:useBean>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function editsend(idx){
document.wform.action="edit.jsp?idx="+idx;
document.wform.submit();
}
function delsend(idx){
document.wform.action="del.jsp?idx="+idx;
document.wform.submit();
}
//-->
</SCRIPT>
</HEAD>
<%
int idx = Integer.parseInt(request.getParameter("idx"));
// 조회수 올리기
BoardQuery boardQuery=new BoardQuery();
boardQuery.boardHitUp(idx);
boardBean = boardQuery.boardView(idx);
%>
<BODY>
<TABLE width="550" align="center" border="1">
<TR>
<TD align="center"> <FONT SIZE="4" COLOR="#CCCCCC">일반형 게시판</FONT></TD>
</TR>
</TABLE><BR>
<!-- //////////////////////////////////////////////////////////////////// -->
<FORM METHOD=POST Name="wform">
<TABLE width="550" align="center" border="1">
<TR>
<TD colspan="2" align="center" bgcolor="#CCCCCC"> 글 보 기<BR></TD>
</TR>
<TR>
<TD width="17%"> 이름</TD>
<TD> <%=boardBean.getName()%></TD>
</TR>
<TR>
<TD> 이메일</TD>
<TD> <A HREF="mailto:<%=boardBean.getEmail()%>"><%=boardBean.getEmail()%></A></TD>
</TR>
<TR>
<TD> 홈페이지</TD>
<TD> <A HREF="http://<%=boardBean.getHomepage()%>"><%=boardBean.getHomepage()%></A></TD>
</TR>
<TR>
<TD> 제목</TD>
<TD> <%=boardBean.getTitle()%></TD>
</TR>
<TR>
<TD> 첨부파일<br>단순링크</TD>
<TD> <a href="./data/<%=URLEncoder.encode(boardBean.getFilename(),"EUC-KR")%>"><%=boardBean.getFilename()%></A>
</TD>
</TR>
<TR>
<TD> 첨부파일<br>smartdown<br>한글</TD>
<TD> <A HREF="<%="./download2.jsp?filename="+URLEncoder.encode(boardBean.getFilename(),"EUC-KR")%>"><%=boardBean.getFilename()%></A></TD>
</TR>
<TR>
<TD> 첨부파일<br>무조건다운<br>한글</TD>
<TD> <A HREF="<%="./alldownload.jsp?filename="+URLEncoder.encode(boardBean.getFilename(),"EUC-KR")%>"><%=boardBean.getFilename()%></A></TD>
</TR>
<TR>
<TD> 본문</TD>
<TD>
<TABLE width="400" height="200" >
<TR>
<TD valign="top"><%=boardBean.getContent()%></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD colspan="2" align="center" bgcolor="#CCCCCC">
<INPUT TYPE="button" value="수정하기" onclick="editsend(<%=boardBean.getIdx()%>);">
<INPUT TYPE="button" value="삭제하기" onclick="delsend(<%=boardBean.getIdx()%>);">
</TD>
</TR>
</TABLE></FORM><BR>
<!-- ////////////////////////////////////////////////////////////////////////// -->
<TABLE width="550" align="center" border="1">
<TR>
<TD align="center"> [<A HREF="./list.jsp">리스트</A>] 조회수:[<%=boardBean.getHit()%>]</TD>
</TR>
</TABLE>
</BODY>
</HTML>
인코딩.......
쿼리수정
public BoardBean boardView(int idx) throws SQLException{
BoardBean boardBean= null ;
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
String sql=null;
try {
conn = pool.getConnection();
stat = conn.createStatement();
sql = "select * from "+board+" where idx="+idx ;
rs = stat.executeQuery(sql);
boardBean = new BoardBean();
if(rs.next()){
boardBean.setIdx(rs.getInt("idx"));
boardBean.setHit(rs.getInt("hit"));
boardBean.setName(rs.getString("name"));
boardBean.setEmail(rs.getString("email"));
boardBean.setHomepage(rs.getString("homepage"));
boardBean.setTitle(rs.getString("title"));
String content = rs.getString("content");
content = content.replaceAll("\n","<br>");
boardBean.setContent(content);
boardBean.setFilename(rs.getString("filename"));
boardBean.setFilesize(rs.getInt("filesize"));
boardBean.setPwd(rs.getString("pwd"));
boardBean.setWdate(rs.getString("wdate")) ;
//boardList.add(boardBean);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
rs.close();
stat.close();
pool.releaseConnection(conn);
}
return boardBean;
} // boardView()
자료실 수정하기
----------------------------------------------수정폼
글보기 + 글쓰기 개념이다.
file 요소는 valise 속성을 지정할 수 없다.
----------------------------------------------수정처리 edit_ok.jsp
스토리작성 -- 순서에 맞는지, 조건구조가 정확한지..
암호 비교
일치
파일첨부 된경우 -- 1. 기존의 파일을 삭제하고 --새로운 파일을 업로드하고, 디비를 수정한다.
안된경우 -- 2. 기존의 파일을 유지하고, 디비를 수정한다.
불일치
3. 경고-- 뒤로돌아간다
----------------------------------edit_ok.jsp
받는 준비 / 컴포넌트 준비
디비에 기존의 암호를 가지고 온다.
if(pwd.equarls(pwd2)){
// 업로드 준비 417~420
if(!upfile.isMissing(){
// 기존 파일 삭제 424~430
// 새파일 올림 432~457
}else{
// 기존파일 유지 462~3
}
//디비 입력공통
}else{
// 결고 후 뒤로 돌아감
}
---------------------------------------dao에서
~~~
오타오타오타
<%@ page language="java" %>
<%@ page import = "java.sql.*,java.io.*,java.text.*,java.util.*" contentType="text/html;charset=euc-kr" %>
<%@ include file= "style.inc" %>
<%@ page import = "board.*" %>
<jsp:useBean id="boardBean" class="board.BoardBean"></jsp:useBean>
<HTML>
<HEAD>
<TITLE> 게시판만들기 </TITLE>
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function trans(theform) {
if(theform.name.value==""){
alert("이름을 기입하세요");
theform.name.focus();
return false ;
}
if(theform.email.value==""){
alert("메일을 기입하세요");
theform.email.focus();
return false ;
}
if(theform.title.value==""){
alert("제목을 기입하세요");
theform.title.focus();
return false ;
}
if(theform.content.value==""){
alert("내용을 기입하세요");
theform.content.focus();
return false ;
}
if(theform.pwd.value==""){
alert("암호를 기입하세요");
theform.pwd.focus();
return false ;
}
theform.submit();
}
//-->
</SCRIPT>
</HEAD>
<%
int idx = Integer.parseInt(request.getParameter("idx"));
BoardQuery boardQuery=new BoardQuery();
boardBean = boardQuery.boardView(idx);
%>
<BODY><BR>
<TABLE width="550" align="center" border="1">
<TR>
<TD align="center"> <FONT SIZE="4" COLOR="#CCCCCC">일반형 게시판</FONT></TD>
</TR>
</TABLE><BR>
<!-- //////////////////////////////////////////////////////////////////// -->
<FORM METHOD=POST NAME="myform" ACTION="edit_ok.jsp" enctype="multipart/form-data">
<input type="hidden" name="idx"value="<%=boardBean.getIdx()%>">
<TABLE width="550" align="center" border="1">
<TR>
<TD colspan="2" align="center" bgcolor="#CCCCCC"> 글수정하기<BR></TD>
</TR>
<TR>
<TD width="17%"> 이름</TD>
<TD><INPUT TYPE="text" NAME="name" size="10" value="<%=boardBean.getName()%>"></TD>
</TR>
<TR>
<TD> 이메일</TD>
<TD><INPUT TYPE="text" NAME="email" size="30" value="<%=boardBean.getEmail()%>"></TD>
</TR>
<TR>
<TD> 홈페이지</TD>
<TD><INPUT TYPE="text" NAME="homepage" size="30" value="<%=boardBean.getHomepage()%>"></TD>
</TR>
<TR>
<TD> 제목</TD>
<TD><INPUT TYPE="text" NAME="title" size="50" value="<%=boardBean.getTitle()%>"></TD>
</TR>
<TR>
<TD> 본문</TD>
<TD><TEXTAREA NAME="content" ROWS="10" COLS="50"><%=boardBean.getContent()%></TEXTAREA></TD>
</TR>
<TR>
<TD> 파일첨부</TD>
<TD><INPUT TYPE="file" name="file" size="40"></TD>
</TR>
<TR>
<TD> 암호</TD>
<TD><INPUT TYPE="password" name="pwd" size="10"></TD>
</TR>
<TR>
<TD colspan="2" align="center" bgcolor="#CCCCCC">
<INPUT TYPE="button" value="수정하기" onclick="trans(this.form);">
<INPUT TYPE="reset" value="다시쓰기">
</TD>
</TR>
<INPUT TYPE="hidden" NAME="idx" value="<%=boardBean.getIdx()%>">
</TABLE></FORM><BR>
<!-- ////////////////////////////////////////////////////////////////////////// -->
<TABLE width="550" align="center" border="1">
<TR>
<TD align="center"> [<A HREF="./content.jsp?idx=<%=boardBean.getIdx()%>">돌아가기</A>]</TD>
</TR>
</TABLE>
</BODY>
</HTML>
<%@ page language="java"%>
<%@ page contentType="text/html;charset=euc-kr"%>
<%@ page import="com.jspsmart.upload.*"%>
<jsp:useBean id="smart" scope="page"
class="com.jspsmart.upload.SmartUpload" />
<jsp:useBean id="boardBean" class="board.BoardBean" />
<jsp:setProperty name="boardBean" property="*" />
<jsp:useBean id="boardQuery" class="board.BoardQuery" />
<%
smart.initialize(pageContext);
smart.upload();
String idx = smart.getRequest().getParameter("idx");
String pwd = smart.getRequest().getParameter("pwd");
boardBean = boardQuery.boardView(Integer.parseInt(idx));
String pwd2 = boardBean.getPwd();
String oldfilename = boardBean.getFilename();
int oldfilesize = boardBean.getFilesize();
if (pwd.equals(pwd2)) { //암호가 일치하면
///////////////////////파일 업로드하기
String filename = "";
int filesize = 0;
com.jspsmart.upload.File upfile = smart.getFiles().getFile(0);
if (!upfile.isMissing())//////////////수정파일이 첨부 됐다면
{
/////////////////기본에 파일이 있으면 지운다
//java.io.File oldfile = new java.io.File(request.getRealPath("/myBoardMvc10raUp/data")+"\\"+oldfilename);
java.io.File oldfile = new java.io.File(
"C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + oldfilename);
if (oldfile.exists()) {
oldfile.delete();
}
///////////////////////새파일을 올린다
String filecheck = upfile.getFileName();
// out.println(filecheck + "<br>");
boolean fcount = true;
while (fcount) {
java.io.File file = new java.io.File(
"C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + filecheck);
//java.io.File oldfile = new java.io.File(request.getRealPath("/myBoardMvc10raUp/data")+"\\"+filecheck);
if (file.exists()) {
filecheck = "r_" + filecheck;
} else {
fcount = false;
}
}
String loadfile = "C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + filecheck;
//String loadfile = request.getRealPath("/myBoardMvc10raUp/data")+"\\"filecheck;
//out.print(loadfile+"<br>");
upfile.saveAs(loadfile); //최상위 부터 잡을것
filesize = upfile.getSize();
filename = filecheck;
boardBean.setFilename(filename);
boardBean.setFilesize(filesize);
} else {
//////////////////////////수정파일이 첨부죄디 않았다면 기본의 파일명과 크기를 그대로 적용
boardBean.setFilename(oldfilename);
boardBean.setFilesize(oldfilesize);
}
//////////디비에 입력되는 부분////////////////
boardBean.setIdx(Integer.parseInt(smart.getRequest().getParameter("idx")));
boardBean.setName(smart.getRequest().getParameter("name"));
boardBean.setEmail(smart.getRequest().getParameter("email"));
boardBean.setHomepage(smart.getRequest().getParameter("homepage"));
boardBean.setTitle(smart.getRequest().getParameter("title"));
boardBean.setContent(smart.getRequest().getParameter("content"));
boardBean.setPwd(smart.getRequest().getParameter("pwd"));
boolean result = false;
result = boardQuery.boardUpdate(boardBean);
if (result) { // 암호가 일치하면
out.println("<SCRIPT LANGUAGE=\"JavaScript\">");
out.println("alert(\"글이 수정되었습니다\")");
out.println("location.href=\'content.jsp?idx=" + idx + "\'");
out.println("</SCRIPT>");
}
} else { // 암호가 일치하지 않으면
out.println("<SCRIPT LANGUAGE=\"JavaScript\">");
out.println("alert(\"암호가 일치하지 않습니다\")");
out.println("history.back()");
out.println("</SCRIPT>");
}
%>
쿼리수정
public boolean boardUpdate(BoardBean boardBean) throws SQLException{
boolean result=false ;
ConnectionPool pool = ConnectionPool.getInstance();
Connection conn = pool.getConnection();
Statement stat = conn.createStatement();
String sql ="" ;
int idx=boardBean.getIdx();
String name=boardBean.getName();
String email=boardBean.getEmail();
String homepage=boardBean.getHomepage();
String title=boardBean.getTitle();
String content=boardBean.getContent();
String pwd=boardBean.getPwd();
String filename = boardBean.getFilename();
int filesize = boardBean.getFilesize();
try{
if(passwordCheck(idx,pwd)) { // 암호가 일치하면
sql = "update "+board+" set name='"+name+"',email='"+email
+"',homepage='"+homepage+"',title='"+title
+"',content='"+content+"',filename='"+filename+"',filesize="+filesize+" where idx="+idx;
//sql =new String(sql.getBytes("8859_1"),"euc-kr");
stat.executeUpdate(sql) ;
result=true ;
}else{ // 암호가 일치하지 않으면
result=false ;
}
}catch(Exception e){
System.out.println(e);
}finally{
stat.close();
pool.releaseConnection(conn);
}
return result ;
} //boardUpdate()
오늘 한것중에 제일빡셈 인코딩문제..
삭제하기
자료실 삭제하기
이벤트 발생----------------------
글보기 -- idx --> 암호입력폼
---------------------------암호입력폼 (재활용)
번호를 받는다.
폼구성 : 암호를 입력받음 + idx
삭제처리로 전송
---------------------------삭제처리 (del_ok.jsp)
해당글의 암호를 꺼내 옴
전송된 암호와 비교
암호 일치
파일삭제, 디비를 지움 -- 메시지 -- 이동 --> 목록
불일치
경고 -- 이동 -- 뒤로 돌아감
<%@ page language="java"%>
<%@ page contentType="text/html;charset=euc-kr"%>
<jsp:useBean id="boardQuery" class="board.BoardQuery" />
<jsp:useBean id="boardBean" class="board.BoardBean" />
<%
String idx = request.getParameter("idx");
String pwd = request.getParameter("pwd");
boardBean = boardQuery.boardView(Integer.parseInt(idx));
String pwd2 = boardBean.getPwd(); //암호를 받아옴
String oldfilename = boardBean.getFilename(); //파일명이 필요해서
if (pwd.equals(pwd2)) { //암호가 일치하면
//파일삭제
java.io.File oldfile = new java.io.File(
"C:\\Java_bigdata\\mywork_jsp\\myBoardMvc1OraUP\\WebContent\\data\\" + oldfilename);
if (oldfile.exists()) {
oldfile.delete();
}
//디비 삭제
boardQuery.boardDelete(Integer.parseInt(idx), pwd);
out.println("<SCRIPT LANGUAGE=\"JavaScript\">");
out.println("alert(\"글이 삭제 되었습니다\")");
out.println("location.href=\"list.jsp\"");
out.println("</SCRIPT>");
} else { // 암호가 일치하지 않으면
out.println("<SCRIPT LANGUAGE=\"JavaScript\">");
out.println("alert(\"암호가 일치하지 않습니다\")");
out.println("history.back()");
out.println("</SCRIPT>");
}
%>