<%
/**
* @(#) download.jsp @version 2009. 12. 29.
*
*
*/%>
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%!
public String getValue(String psValue){
return (psValue != null ? (psValue.equals("null") ? "" : psValue) : "");
}
public String pathValidate(String value){
if(value == null || value.length() < 1)
return value;
try {
if(value.indexOf("../") > -1) {
value = value.replaceAll(".[.]/", "");
}
else if(value.indexOf("..\\") > -1) {
value = value.replaceAll(".[.]\\\\", "");
}
}catch(Exception ex) {
//ex.printStackTrace();
}
return value;
}
%>
<%
String strFileName = request.getParameter("fileName")!=null?request.getParameter("fileName"):"";
String strDir = request.getParameter("fileDir")!=null?request.getParameter("fileDir"):"";
String strMsg = "";
if( strFileName.indexOf("\\") > -1 ){ out.print("접근할수 없는 경로입니다."); return; }
if( strFileName.indexOf(".jsp") > -1 ){ out.print("접근할수 없는 경로입니다."); return; }
//if( strDir.indexOf("\\") > -1 ){ out.print("접근할수 없는 경로입니다."); return; }
//if( strDir.indexOf(".jsp") > -1 ){ out.print("접근할수 없는 경로입니다."); return; }
String strFileName1 = "";
String strFilePath = "";
strFilePath = "";//PropertyManager.getProperty("UPATH", "FILE_UPLOAD_PATH");
if( !strDir.equals("") ){
strFilePath = strFilePath + strDir;
}
String strFileFullPath=strFilePath+strFileName;
byte[] buffer = new byte[4096];
File fileSave = new File(strFileFullPath);
InputStream isFile = null;
ServletOutputStream osOut = null;
if( !fileSave.isFile() ){
strMsg = "파일이 존재하지 않습니다.";
}else{
strFileName = strFileName.replaceAll("\\[", "");
strFileName = strFileName.replaceAll("\\]", "");
strFileName = strFileName.replaceAll(" ", "");
String strClient = request.getHeader("User-Agent");
if( strClient.indexOf("MSIE 5.5") != -1 ){
response.setHeader("Content-Type", "doesn/matter;");
response.setHeader("Content-Disposition", "filename=" + strFileName + ";");
}else{
response.setHeader("Content-Type", "application/octet-stream;");
response.setHeader("Content-Disposition", "attachment;filename="+strFileName + ";");
}
isFile = new FileInputStream(fileSave);
osOut = response.getOutputStream();
int nSize = 0;
try{
while( (nSize = isFile.read(buffer)) > 0 ){
osOut.write(buffer,0,nSize);
osOut.flush();
}
}catch( Exception e ){
//e.printStackTrace();
}finally{
osOut.close();
isFile.close();
}
}
%>
url 에서 파일 다운로드 jsp (0) | 2010.06.15 |
---|---|
ant, eclipse jar 만들기 (0) | 2010.05.29 |
tag 내용(,구분자) 20개 제한 및 /score 뺴기 (0) | 2010.04.01 |
MD5 (1) | 2010.03.22 |
mysql의 최대 성능 향상 방법 (0) | 2010.03.19 |