1669
No
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="java.io.*"%>
<%@ page import="java.text.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%
if(session.getAttribute("admin")==null){
response.sendRedirect("/");
return;
}
request.setCharacterEncoding("UTF-8");
// 파일 업로드된 경로
String root = "C:\\tomcat9\\webapps\\";
String savePath = root + "upfiles";
// 서버에 실제 저장된 파일명
String filename = request.getParameter("filename");
filename= URLDecoder.decode(filename, "UTF-8");
// 실제 내보낼 파일명
String orgfilename =filename;
InputStream in = null;
OutputStream os = null;
File file = null;
boolean skip = false;
String client = "";
try{
// 파일을 읽어 스트림에 담기
try{
file = new File(savePath, filename);
in = new FileInputStream(file);
}catch(FileNotFoundException fe){
skip = true;
}
client = request.getHeader("User-Agent");
// 파일 다운로드 헤더 지정
response.reset() ;
response.setContentType("application/octet-stream");
response.setHeader("Content-Description", "JSP Generated Data");
if(!skip){
// IE
String header = request.getHeader("User-Agent");
if (header.contains("MSIE") || header.contains("Trident")) {
orgfilename = URLEncoder.encode(orgfilename,"UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=" + orgfilename + ";");
} else {
orgfilename = new String(orgfilename.getBytes("UTF-8"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgfilename + "\"");
}
response.setHeader ("Content-Length", ""+file.length() );
response.setHeader("Content-Type", "application/octet-stream");
response.setHeader("Content-Transfer-Encoding", "binary;");
response.setHeader("Pragma", "no-cache;");
response.setHeader("Expires", "-1;");
os = response.getOutputStream();
byte b[] = new byte[(int)file.length()];
int leng = 0;
while( (leng = in.read(b)) > 0 ){
os.write(b,0,leng);
}
}else{
response.setContentType("text/html;charset=UTF-8");
out.println("<script language='javascript'>alert('파일을 찾을 수 없습니다');history.back();</script>");
}
os.flush();
in.close();
os.close();
}catch(Exception e){
//out.println("<script language='javascript'>alert('파일을 찾을 수 없습니다');history.back();</script>");
//e.printStackTrace();
}finally{
try{
if(in!=null)in.close();
}catch(Exception e){
e.printStackTrace();
}
try{
if(os!=null)os.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<script>
self.close();
</script>
<%
}
%>















댓글 ( 4)
댓글 남기기