728x90


pdsdetail.jsp
<%@page import="dto.PdsDto"%>
<%@page import="dao.PdsDao"%>
<%@page import="dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
MemberDto mem = (MemberDto)request.getSession().getAttribute("login");
%>
<%
String getseq = request.getParameter("seq");
int seq = Integer.parseInt(getseq);
String id = request.getParameter("id");
%>
<%
PdsDao dao = PdsDao.getInstance();
dao.readcount(seq);
PdsDto dto = dao.getPds(seq);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<h1>자료실 상세 페이지</h1>
<div class="container">
<table class="table table-hover">
<!-- <col width="200"><col width="400"> -->
<tr>
<td>작성자id</td>
<td><%=dto.getId() %></td>
</tr>
<tr>
<td>제목</td>
<td><input type = "text" value = "<%=dto.getTitle() %>"></td>
</tr>
<tr>
<td>작성일</td>
<td><%=dto.getRegdate()%></td>
</tr>
<tr>
<td>조회수</td>
<td><%=dto.getReadcount() %></td>
</tr>
<tr>
<td>다운로드 수</td>
<td><%=dto.getDowncount() %></td>
</tr>
<tr>
<td>파일 이름 정보</td>
<td><%=dto.getFilename()%></td>
</tr>
<tr>
<td>내용</td>
<td><textarea rows="20" cols="50px" ><%=dto.getContent() %></textarea></td>
</tr>
</table>
<br><br>
<%
if(dto.getId().equals(mem.getId())) {
%>
<input type="button" name ="btndown" value = "파일다운로드"
onclick = "location.href='filedown?filename=<%=dto.getFilename()%>&seq=<%=dto.getSeq()%>'">
<button onclick = "deletepds(<%=dto.getSeq() %>)">파일 삭제</button>
<button onclick = "update(<%=dto.getSeq() %>)">파일 수정</button>
<%
}
%>
<button onclick = "location.href='pdslist.jsp'">자료실로 가기</button>
</div>
<script type="text/javascript">
function deletepds(seq){
alert("삭제하겠습니다");
location.href = "pdsdelete.jsp?seq=" +seq + "&filename=" + <%=dto.getFilename() %> + "";
}
</script>
</body>
</html>
FileDownLoader.java
package filedown;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.PdsDao;
import dto.PdsDto;
public class FileDownLoader extends HttpServlet{
ServletConfig mConfig = null;
final int BUFFER_SIZE = 8192;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//여기가 컨트롤러라고 생각하자
//파일 버튼을 누르면 실행
System.out.println("FileDownLoader");
String filename = req.getParameter("filename");
int seq = Integer.parseInt(req.getParameter("seq"));
//DOWNCOUNT 증가
PdsDao dao = PdsDao.getInstance();
dao.downcount(seq);
PdsDto dto = dao.getPds(seq);
System.out.println(dto.toString());
BufferedOutputStream out = new BufferedOutputStream(resp.getOutputStream());
//경로(path)
//tomcat - server
String filepath = mConfig.getServletContext().getRealPath("/upload");
//폴더 client
//String filepath = "d:\\tmp";
//톰캣과 무관 확인용
filepath = filepath + "\\" + filename;
System.out.println("filepath:" + filepath);
File f = new File(filepath);
if(f.exists() && f.canRead()) {
//파일이 존재하는지 알기위한 조건문
//다운받을시 윈도우 하단에 다운로드 창 실행
resp.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\";");
resp.setHeader("Content-Transfer-Encoding", "binary;");
resp.setHeader("Content-Length", "" + f.length());
resp.setHeader("Pragma", "no-cache;");
resp.setHeader("Expires", "-1;");
//파일 생성, 기입
BufferedInputStream fileInput = new BufferedInputStream(new FileInputStream(f));
byte buffer[] = new byte[BUFFER_SIZE];
int read = 0;
while((read = fileInput.read(buffer)) != -1) {
out.write(buffer,0,read);//실제 다운로드
}
fileInput.close();
out.flush();
//1-> 같은 파일명 -> 원본명을 시간 명으로 변경
}
}
@Override
public void init(ServletConfig config) throws ServletException {
mConfig = config; //업로드한 경로 취득
}
}
728x90
'HTML' 카테고리의 다른 글
58일차//Ajax 댓글기능 (0) | 2021.04.01 |
---|---|
semiproject// 1일차 (0) | 2021.03.24 |
48일차//JSP// FileItem 인터페이스 ( 자료실 파일 업로드, 올리기)💨 (0) | 2021.03.22 |
48일차//jsp// 게시판 파일업로드..enctype = "multipart/form-data" (0) | 2021.03.22 |
44일차//JSP// MVC Model 1 // 로그인 게시판 만들기⭕(1) idcheck Model + View (0) | 2021.03.17 |