Struts2 파일 다운로드 기능 코드 공유 실현(파일 이름 중국어 코드)
Action 파일
public class DownLoadAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 5879762231742395104L;
private String fileName;//
private String inputPath;// ( struts )
public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public String getInputPath() {
return inputPath;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileName() {
return fileName;
}
public String downloadFile() throws Exception {
ServletContext context = ServletActionContext.getServletContext();
String downloadDir = context.getRealPath("/upload");
String downloadFile = context.getRealPath(inputPath);
//
if(!downloadFile.startsWith(downloadDir)) {
return null;
}
return "download_success";
}
/*
*
*/
public InputStream getInputStream() throws Exception {
String path = inputPath + File.separatorChar + new String(fileName.getBytes("ISO-8859-1"), "UTF-8");
return ServletActionContext.getServletContext().getResourceAsStream(path);
}
/*
*
*/
public String getDownloadFileName() {
String downloadFileName = fileName;
try {
downloadFileName = URLEncoder.encode(downloadFileName, "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
e.getMessage();
e.printStackTrace();
}
return downloadFileName;
}
}
jsp 파일:
<li>
<a href="<%=path%>/download_DownLoadAction_downloadFile.action?fileName=dwr.jar">dwr.jar </a>
</li>
<li>
<a href="<%=path%>/download_DownLoadAction_downloadFile.action?fileName=Struts2 .pdf">Struts2 .pdf </a>
</li>
struts.xml:
<action name="download_*_*" class="com.wang.action.{1}" method="{2}">
<param name="inputPath">/upload</param>
<!-- result type stream -->
<result name="download_success" type="stream">
<!-- MIME -->
<param name="contentType">application/octet-stream</param>
<!-- inputName action (action getInputStream , InputStream) -->
<param name="inputName">inputStream</param>
<!-- (action getDownloadFileName ) -->
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<!-- -->
<param name="bufferSize">2048</param>
</result>
</action>
위에서 말한 것은 여러분께 소개해 드린 Struts2가 파일 다운로드 기능 코드 공유(파일 이름 중국어 디코딩)를 실현하는 것과 관련된 내용입니다. 여러분께 도움이 되기를 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.