struts 2 파일 다운로드 기능 (다운로드 하면 서 포장)
3836 단어 struts2
http://cloudyxuq.iteye.com/blog/1532631
여러 개의 파일, 디 렉 터 리 가 다 르 기 때문에 조건 조 회 를 통 해 어떻게 포장 다운 로드 를 합 니까?
1. ZipEntry 를 이용 하여 i 줄 파일 의 압축
2. 프론트 데스크 톱 jsp 에서 다운로드 해 야 할 일련의 파일 의 경로 (배열 형식) 를 전송 합 니 다.checkBox 에 있 기 때문에 폼 제출 은 자동 으로 배열 로 정 의 됩 니 다.name 이름 을 배경 에서 얻 을 경로 배열 이름 으로 만 명명 해 야 합 니 다.
프런트
downLoadZip.jsp
체크 박스 코드
iterator 를 이용 하여 교 체 된 filePath
value='
백 스테이지 액 션
private String[] downLoadPaths;
downLoadPaths 를 옮 겨 다 니 며 포장...
코드:
/**
* ( zip, )。
*
* @author Cloudy
*
*/
@Namespace("xxxxxx")
public class DownZipAction {
/**
*
*/
private static final long serialVersionUID = 1L;
// List<String>()
private String[] downLoadPaths;
private OutputStream res;
private ZipOutputStream zos;
private String outPath;
// Action
@Action(value="DownLoadZip",results={@Result(name="nodata",location="/error.jsp"),
@Result(name="success",location="xxxx.jsp")})
public String downLoadZip() throws Exception {
//
if (downLoadPaths.length != 0) {
//
preProcess();
} else {
// , nodata
return "nodata";
}
//
writeZip(downLoadPaths);
//
afterProcess();
return SUCCESS;
}
//
public void writeZip(String[] downLoadPaths) throws IOException {
byte[] buf = new byte[8192];
int len;
for (String filename : downLoadPaths) {
File file = new File(filename);
if (!file.isFile())
continue;
ZipEntry ze = new ZipEntry(file.getName()); //apache jar ZipEntry
zos.putNextEntry(ze);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
while ((len = bis.read(buf)) > 0) {
zos.write(buf, 0, len);
}
bis.close();
zos.closeEntry();
}
}
//
public void preProcess() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
res = response.getOutputStream();
// ( )
response.reset();
//
response.setHeader("Content-Disposition", "attachment;filename=document.zip");
response.setContentType("application/zip");
zos = new ZipOutputStream(res);
}
//
public void afterProcess() throws IOException {
zos.close();
res.close();
}
public OutputStream getRes() {
return res;
}
public void setRes(OutputStream res) {
this.res = res;
}
public ZipOutputStream getZos() {
return zos;
}
public void setZos(ZipOutputStream zos) {
this.zos = zos;
}
public String[] getDownLoadPaths() {
return downLoadPaths;
}
public void setDownLoadPaths(String[] downLoadPaths) {
this.downLoadPaths = downLoadPaths;
}
public String getOutPath() {
return outPath;
}
public void setOutPath(String outPath) {
this.outPath = outPath;
}
}
struts 2 파일 다운로드 오류 알림 해결 방법.
http://blog.csdn.net/java20100406/article/details/6439698
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
apache struts2 취약점 검증이번에는 보안 캠프의 과제였던 apache struts2의 취약성에 대해 실제로 손을 움직여 실행해 보고 싶습니다. 환경 VirtualBox에서 브리지 어댑터 사용 호스트:macOS 10.12 게스트:ubuntu 1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.