首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2 文件下载,该如何处理

2013-10-15 
struts2 文件下载如题:我在action中得到了 文件的绝对路径 和 文件名称以及 inputstream,请问在页面 和 ac

struts2 文件下载
如题:我在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>

[解决办法]
struts2文件上传下载  http://wenku.baidu.com/view/d1385ec30c22590102029d3c.html

Struts2文件下载功能开发  

http://www.javaeye.com/wiki/Struts2_leader_guide/1987-struts_guide_11

http://shirlly.javaeye.com/blog/219073






希望对你有帮助
[解决办法]
不是这丫的  action返回string, action中包括file,contenttype,size的信息,struts自动帮你搞,具体去看人家的博客
http://blog.csdn.net/voyage_mh1987/archive/2010/09/15/5884966.aspx
[解决办法]
要修改Action代码如下


public String download(){
        return SUCCESS;
}
public InputStream getInputStream(){
        return ServletActionContext.getServletContext().getResourceAsStream(fileName);
}

[解决办法]
引用:
Java code
javax.servlet.ServletException: java.io.FileInputStream cannot be cast to java.lang.String

 报这个错误的原因是什么  ?

Action方法不应该返回InputStream。
4楼我的代码就是为了解决这个问题的。
[解决办法]
Struts2文件下载:
 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> 

热点排行