Struts2 下载中文乱码解决 绝对简单低配

Action

实际文件名获取

GBK 是根据 你myeclipse   的编码方式设定

这步是核心代码        简单解释 就是   将 myeclipse的源文件名 编码(GBK) 转换成 页面输出的编码(ISO8859-1) 

这步容易拉下 我就为这步拉下 找了一上午

 

 /**
  * @return the sjm
  */
 public String getSjm() {
  try {
   sjm = new String(sjm.getBytes("gbk"), "iso-8859-1");
   } catch (UnsupportedEncodingException e) {
   System.out.println(e.getMessage());
   }
   return sjm;
 
 }

 

 

下载方法

 


//文件下载
 public InputStream getDownloadFile()
 {

  
  InputStream in=ServletActionContext.getServletContext().getResourceAsStream( 这里写文件路径+文件名 );//有空异常

 return in;

 }

 
 @Override
 public String execute()  {
  
  String root =ServletActionContext.getServletContext().getRealPath( 这里写文件路径+文件名 );//有空异常  
  File   dir   =   new   File(root);
  if(dir.exists()) {  System.out.println( "The   file   exist ");
 
  
  }else{   System.out.println( "The   file   is   not   exist ");
  
  this.addFieldError("error","文件已被删除或不存在文件 !" );
  return "input";
  
 }
  return SUCCESS;
  
 }
 

 

 

配置文件

<!--下载特定文件管理信息 -->
 <action name="Wjgl_DL" class="Wjgl_Action" >
   <result name="success" type="stream">
      <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
      <param name="contentDisposition">attachment;filename="${wjm}"</param>
    <param name="inputName">downloadFile</param>
    <param name="bufferSize">4096</param>
   </result>
<result name="input" >/zhbg/Wjgl_S_O.jsp</result>
  </action>

 

 

 

 

页面 提示下      get 容易出现乱码  获取不到正常的文件名

1、通过 post提交  (这个你要会 多表单提交你要的那个)

 

显示代码

<s:iterator value="#session.listFiles" id='wjm' status="st">


<s:if test="key ==0  ">

</s:if><s:else>
<tr> <td width="100px"> 文件:   </td>   <td> <s:textfield    name="wjms"  label="文件      %{ #st.index+1} "  value="%{value}" readonly="true"></s:textfield>

<s:form theme = "simple" method = "post" name = "form%{ #st.index+1}">
<tr>
 <td   align="center"  colspan="2">
 <input type="hidden"   name="mlm" value="<s:property value='%{wjgl.wjgl_lm}'/>"/>
<input type="hidden"   name="ywjm" value="<s:property value='%{key}'/>"/>
<input type="hidden"   name="wjm" value="<s:property value='%{value}'/>"/>

<input type="button" class="buttonSearch"  οnclick="CheckSearch(this.form)"  value="下载" name="B2">

</tr>
</s:form>


</s:else>

 </s:iterator>

 

 

js。

 

<script language="Javascript">
  
    function  CheckSearch(theForm)
    {
   
        theForm.action="Wjgl_DL.action";
      
        theForm.submit();
    }
</script>

 

2、用ID查询 出原名文件   都不会出现乱码 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zylyueliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值