从来没有认真学习过struts,总是需要什么就看什么文档,正好今天因为有个功能是要文件下载,网上的例子也很多。这里给一个最简单的实例。
调用方式
var url = strPath + "demo_exportImage.do?imageid="+imgid;
javascript:window.location=url;
之前因为贪图方便复制了之前的一些代码写成了ajax 的请求方式,一直都不能成功下载。所以找了很多资料,都没有找到原因。。。
当然不可能找到原因啦,因为我自己没有认真仔细看,后来请教了同事,同事说不能用ajax 。后来我再想想,对啊,找到的资料都是用widnow.localhost的方式请求的。
<action name="demo_exportImage" class="demoAction">
<result type="stream" name="success">
<!-- 文件类型,具体的文件类型大家可以找其他文档 -->
<param name="contentType">application/octet-stream</param>
<!-- 要有相对应的getExportImage()方法返回类型是 InputStream -->
<param name="inputName">exportImage</param>
<!-- 声明文件的名字为fileName,记得要在action定义文件的名字,并要加上get set -->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
DemoAction .java
public InputStream getExportImage(){
InputStream inputStream=null;
String imageUrl="c:\\test\122.txt"
try{
File file=new File(imageUrl);
inputStream=new FileInputStream(file);
fileName="122.txt"
}catch (Exception e){
System.out.println(e);
}
return inputStream;
}
这样就是最简单的一个 struts2 文件的下载实例。