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查询 出原名文件 都不会出现乱码