其实和Struts2没关系了,只要一个文件流就OK了,配置很简单
mark下,以后好给别人这个地址。
1.定义变量
private InputStream inputStream;//下载时候,使用的数据流
private String downloadFileName;//下载时候,显示的文件名
2.编写代码,获取到文件,设置文件名称和文件输出流
try{
String path=session.getServletContext().getRealPath(upFile.getPath());
File file=new File(path);
inputStream = new FileInputStream(file);
inputStream=inputStream;
downloadFileName=file.getName();
}catch (FileNotFoundException e1) {}
3.配置action
<action name="download" class="downLoadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<!-- 这个名字是输入流的名称,以后要steam result的实现类中为根据OGNL的表达式去查 -->
<param name="inputName">inputStream</param>
<!-- 这个是下载之后,保存在用户端的文件名称 -->
<param name="contentDisposition">filename=${downloadFileName}</param>
<param name="bufferSize">4096</param>
</result>
</action>
mark下,以后好给别人这个地址。
1.定义变量
private InputStream inputStream;//下载时候,使用的数据流
private String downloadFileName;//下载时候,显示的文件名
2.编写代码,获取到文件,设置文件名称和文件输出流
try{
String path=session.getServletContext().getRealPath(upFile.getPath());
File file=new File(path);
inputStream = new FileInputStream(file);
inputStream=inputStream;
downloadFileName=file.getName();
}catch (FileNotFoundException e1) {}
3.配置action
<action name="download" class="downLoadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<!-- 这个名字是输入流的名称,以后要steam result的实现类中为根据OGNL的表达式去查 -->
<param name="inputName">inputStream</param>
<!-- 这个是下载之后,保存在用户端的文件名称 -->
<param name="contentDisposition">filename=${downloadFileName}</param>
<param name="bufferSize">4096</param>
</result>
</action>