如题:我在action中得到了 文件的绝对路径 和 文件名称 以及 inputstream,请问在页面 和 action的配置文件中要怎么去处理? 页面的我是用的一下超链接,不知道怎么的不会弹出 保存文件的对话框。以下是我的相应代码:action中(注此处我的fileName是有办法得到的):
public InputStream download(){
........
return ServletActionContext.getServletContext().getResourceAsStream(fileName);
}
配置文件:
<action ......>
<result type="stream">
<param name="contentType">application/zip</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
页面<a href="downloadAttach.action?id=${此处能取到id}">下载</a>
public InputStream download(){
........
return ServletActionContext.getServletContext().getResourceAsStream(fileName);
}
配置文件:
<action ......>
<result type="stream">
<param name="contentType">application/zip</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
页面<a href="downloadAttach.action?id=${此处能取到id}">下载</a>
解决方案 »
- 一个矩形 有(x1,y1)(x2,y1)(x1,y2)(x2,y2)四个点 现在要求用java写一个程序。取到这四个点的坐标
- SSH中MVC与展现成、持久层等的关系
- 关于oracle tns协议 数据部分的解析 求做过oracle数据库审计的大神
- 在tomcat配置webwork2.1.7,无法启动帮忙看看!
- 招版主,Java高手进
- 一个比较大的web系统,业务层有一部分用ejb实现,我该如何来布置?
- Struts客户化标签<html:error/>不知道为什么不能显示错误信息?求助!
- 100分求解eclipse+jboss开发cmp的难题!
- 大家是不是觉得在本版越来越不如以前了,有些问题一百年都没人理了:(
- 为什么我的jb7不可以创建ejb啊
- 如何控制大批量文本输入长度
- 怎么在unix下部署tomcat?急用,在线等
希望对你有帮助
http://blog.csdn.net/voyage_mh1987/archive/2010/09/15/5884966.aspx
public String download(){
return SUCCESS;
}
public InputStream getInputStream(){
return ServletActionContext.getServletContext().getResourceAsStream(fileName);
}
是空的好比说有这样一个文件 D:/files/123.txt 此处,我的fileName该怎么写?
fileName怎么写都不对,用FileInputStream自己开文件吧。
如
new FileInputStream("d:/files/123.txt");
报这个错误的原因是什么 ?
4楼我的代码就是为了解决这个问题的。
Struts2文件下载对应将一个InputStream返回
如Action中下载的方法:
/**
* 文件下载的Action
*
* @author 张明学
*
*/
public class DownloadAction extends ActionSupport {
public InputStream getDownloadFile() {
return ServletActionContext.getServletContext().getResourceAsStream(
"/upload/200906231.doc");
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
struts.xml配置如下:
<action name="download"
class="com.mengya.action.DownloadAction">
<!-- result的Type必须为stream -->
<result name="success" type="stream">
<!-- 下载文件类型 -->
<param name="contentType">application/msword</param>
<!-- 下载对话框所弹出的文件名 -->
<param name="contentDisposition">
fileName="200906231.doc"
</param>
<!-- 下载的InputStream流,Struts2自己动对应Action中的getDownloadFile方法,该方法必须返回InputStream类型 -->
<param name="inputName">downloadFile</param>
</result>
</action>
页面:
<s:a href="download.action">下载</s:a>