struts2文件下载错误提示的解决方法

1.   jsp页面超链接<a href="javascript:void(0)"  οnclick="downloadFile('${id}')">${name}</a>

2.   表单提交

<form action="downloadFile.html" id="downloadFileForm"   method="post" enctype="multipart/form-data"    target="downloadFileIframe">
        <input type="hidden"   id="downloadFileId" name="id"/>
         <iframe name="downloadFileIframe" style="display:none"></iframe> 
</form>
<script type="text/javascript">
     function downloadFile(id){
           $("#downloadFileId").val(id);
           downloadFileForm.submit();
     }
</SCRIPT>

3.   struts2.xml

  <action name="downloadFile" class="cn.shaviation.frm.webapp.action.FileUploadAction" method="download">
      <result name="success" type="stream">
            <param name="contentType">${sysfile.type}</param>
                <param name="inputName">inputStream</param>
                <param name="bufferSize">40960</param>
            </result>
        <result name="input">/WEB-INF/pages/common/downloadFileErrorMessage.jsp</result>
  </action>

4.   FileUploadAction中的download方法

 public String download()  {  //下载文件
  try {
   sysfile = sysfileManager.get(id);
   inputStream =  new FileInputStream(sysfile.getPath());
   getResponse().setHeader("Content-Disposition","attachment; filename="+ URLEncoder.encode(sysfile.getName(), "UTF-8").replaceAll("//+", "%20") );      //replaceAll("//+", "%20")用来处理空格的文件名
  } catch (FileNotFoundException e) {
   downloadFileMessage="服务器上不存在该文件";
   return INPUT;
  } catch (UnsupportedEncodingException e) {
   downloadFileMessage="其他错误";
   return INPUT;
  }

  return SUCCESS;
 }

5.  下载发生错误的处理

 <SCRIPT LANGUAGE="javascript">    
       var downloadFileMessage = "<%=request.getAttribute("downloadFileMessage")%>";
       if(downloadFileMessage != "null"){
             alert(downloadFileMessage);
       }
 </SCRIPT>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值