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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception Class에서 에러 코드 해석 ~초기초편~직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.