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 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
한 편의 문장으로 Struts2의 유형 전환을 해결하다우리는 HTTP를 통해 백그라운드에 제출된 데이터가 모두 문자열의 형식이라는 것을 알고 있으며, 우리가 필요로 하는 데이터 형식은 당연히 문자열 형식 하나만 있는 것이 아니다.그래서 우리는 유형 전환이 필요하다!다음...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.