struts下载遇到错误

来源:互联网 发布:空调推荐 知乎 编辑:程序博客网 时间:2024/04/29 23:53

  今天一直下载出现如下异常:

 Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the <param name="inputName"> tag specified for this action.

 查了半天资料:发现,路径不对。

 在action中,定义四个属性。

 /** 下载的文件类型 */
 protected String contentType;
 /** 下载的文件名称 */
 protected String filename;
 /** 输入流 */
 protected InputStream inputStream;
 /** 下载的文件路径 */
 protected String inputPath;

 

 public InputStream getInputStream()//获取输入流
 { 
     return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
 }

 

 public String getFilename() //获取中文名称
 {
  try
  {
   return new String(filename.getBytes("gbk"),"ISO-8859-1");
  } catch (UnsupportedEncodingException e)
  {
   e.printStackTrace(); 
   return filename;
  }
 }

 

 inputPath = "/"+“文档保存路径”+“文档名称.doc”;

 

在xml中的配置文件如下:

   <result name="down" type="stream">
                <param name="contentType">application/octet-stream;charset=ISO8859-1</param>           
                <param name="inputName">inputStream</param>
                <param name="bufferSize">4096</param>
                <param name="contentDisposition">attachment;filename="${filename}"</param>
      </result>

 

<!-- 动态文件下载的,事先并不知道未来的文件类型,那么我们可以把它的值设置成为:application/octet-stream;charset=ISO8859-1 ,注意一定要加入charset,否则某些时候会导致下载的文件出错; -->

 


 

 

原创粉丝点击