struts下载遇到错误

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

 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,否则某些时候会导致下载的文件出错; -->

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值