编写Action类 提供输入流
import com.opensymphony.xwork2.ActionSupport;
import java.io.*;
import java.net.URLEncoder;
/**
* @program: struts2_06
* @description
* @author: LIANG
* @create: 2021-02-01 11:16
**/
public class DownloadAction extends ActionSupport {
private InputStream inputStream;
String fileName;
public String getFileName() {
return fileName;
}
public InputStream getInputStream() {
return inputStream;
}
public String dowmloadpic() throws FileNotFoundException, UnsupportedEncodingException {
fileName="BAGE.JPG";
String path="C:\\Users\\LIANG\\Pictures\\20200325\\"+fileName;
inputStream = new FileInputStream(path);
//下载名更改中文名 使用url编码
fileName="图片.JPG";
fileName = URLEncoder.encode(fileName, "UTF-8");
return SUCCESS;
}
}
配置struts.xml文件
<action name="download" class="org.ccit.com.web.action.DownloadAction" method="dowmloadpic">
<!-- 以流的形式返回给客户端-->
<result name="success" type="stream">
<!-- 通过get方法获取输入流-->
<param name="inputName">inputStream</param>
<!-- 设置文件下载的俩个响应头-->
<param name="contentDisposition">attachement;filename=${fileName}</param>
<param name="contentType">application/octet-stream</param>
</result>
</action>