download.jsp

나중에 가져와서 써.
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.wondertek.meeting.model.*"%>
<%@ page import="com.wondertek.meeting.util.ValidateUtil"%>

<%


	//  IE      
	response.setHeader("pragma", "no-cache");
	response.setHeader("cache-control", "no-cache");
	response.setDateHeader("Expires", 0);
	//        
	request.setCharacterEncoding("UTF-8");

	MeetingFiles meetingFiles = (MeetingFiles) request
			.getAttribute("meetingFiles");
	System.out.println("downloading.....");
	System.out.println("meetingFiles.getFileSaveName():"
			+ meetingFiles.getFileSaveName());
	System.out.println("meetingFiles.getFileName():"
			+ meetingFiles.getFileName());
	System.out
			.println(config.getServletContext().getRealPath(
					meetingFiles.getFilePath() + File.separator
							+ meetingFiles.getFileSaveName()));

	java.io.BufferedInputStream bis = null;
	java.io.BufferedOutputStream bos = null;

	try {
		String fileSaveName = meetingFiles.getFileSaveName();
		//response.setContentType("application/octet-stream");
		response.setContentType("application/octet-stream;charset=UTF-8");

		//   WAP   
		String fileDownloadName = "";
		if ("WAP".equals(String.valueOf(request.getAttribute("from")))) {
			fileDownloadName = meetingFiles.getFileSaveName();
		} else {
			fileDownloadName = meetingFiles.getFileName();
		}
		
		System.out.println("    IE:"+ValidateUtil.isIE());
		
		//IE   
		
		if(ValidateUtil.isIE()){
			
			response.setHeader(
					"Content-disposition",
					"attachment; filename="
							+ java.net.URLEncoder.encode(fileDownloadName,
									"utf-8"));
		}else{
			response.setHeader(
					"Content-disposition",
					"attachment; filename="
							+ new String(fileDownloadName.getBytes("UTF-8"), "ISO8859-1"));
		}
	

		String documentRoot = String.valueOf(request
				.getAttribute("documentRoot"));

		bis = new java.io.BufferedInputStream(new FileInputStream(
				documentRoot
						+meetingFiles.getFilePath()
						+ File.separator
						+ java.net.URLEncoder.encode(fileSaveName,
								"UTF-8")));

		bos = new java.io.BufferedOutputStream(
				response.getOutputStream());
		byte[] buff = new byte[2048];
		int bytesRead;
		while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
			bos.write(buff, 0, bytesRead);
		}
		
		bos.flush();
		out.clear();//       。
		out = pageContext.pushBody();//:  API
		
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (bis != null)
			bis.close();
		if (bos != null)
			bos.close();
	}
%>

 
 
 
IE 판단
 
    *      IE
     * @return
     */
	public static boolean isIE() {
		return ServletActionContext.getRequest().getHeader("USER-AGENT")
				.toLowerCase().indexOf("msie") > 0 ? true : false;
	} 

 

좋은 웹페이지 즐겨찾기