struts2文件下载

xiaoxiao2021-02-28  45

package com.chen.action; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.nio.file.Files; import java.nio.file.Paths; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DwonAction extends ActionSupport { private String fileName; private String contentType; private String filepath; public String getContentType() throws IOException { return Files.probeContentType(Paths.get(filepath)); } public void setContentType(String contentType) { this.contentType = contentType; } public String getFilepath() { return filepath; } public void setFilepath(String filepath) { this.filepath = filepath; } public String getFileName() throws UnsupportedEncodingException { String filepath = new String(this.filepath.getBytes("UTF-8"), "iso-8859-1"); int begin = filepath.lastIndexOf("\\"); fileName=filepath.substring(begin+1, filepath.length()); System.out.println(fileName); return fileName; } public void setFileName(String fileName) throws UnsupportedEncodingException { this.fileName = new String(fileName.getBytes("iso-8859-1"), "UTF-8"); } public InputStream getDownLoadFile() throws IOException { filepath = new String(filepath.getBytes("iso-8859-1"), "UTF-8"); FileInputStream stream = new FileInputStream(filepath); return stream; } public String execute() throws Exception { return SUCCESS; } } <action name="dwon" class="DwonAction" method="execute"> <result name="success" type="stream"> <param name="contentType">${contentType}</param><!-- 指定下载文件类型 --> <param name="inputName">DownLoadFile</param> <param name="contentDisposition">attachment;filename="${fileName}"</param> </result> </action>

注意点:文件名字上传服务器是iso8859-1编码成utf-8,下载时候要转回去,utf-8转成iso8859-1

utf-8->iso8859-1->utf-8

utf-8<-iso8859-1<-utf-8

转载请注明原文地址: https://www.6miu.com/read-2629470.html

最新回复(0)