서브렛에서 파일을 다운로드하는 쓰기
public String execute() throws Exception {
super.execute();
ServiceResponse response = getResponse();
if (!response.isSuccess()) {
return assemblesResponse(response);
}
//
String fileName = response.getString("__fileName__");
if (fileName == null || "".equals(fileName)) {
fileName = "download";
}
fileName = new String(fileName.getBytes(), "iso8859-1");
//
byte[] bs = (byte[]) response.get("__data__");
if (bs == null) {
throw new Exception(" ");
}
writeToStream(ServletActionContext.getResponse(), bs, fileName);
return null;
}
public void writeToStream(ServletResponse resp, byte[] bytes, String fileName) throws IOException {
HttpServletResponse response = (HttpServletResponse) resp;
response.reset();
response.setContentType("application/octet-stream");
response.setContentLength(bytes.length);
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
주로 HttpServlet Response의 서브렛 OutputStream을 통해 바이트를 직접 출력합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.