struts上传都会有乱码问题,通过struts框架好像没有什么好的解决办法,我的方法是在jsp页面上,设置hidden,用js传递文件名

解决方案 »

  1.   

    function addSenToEventHandle(EHObj,insSen){
    var preSen;
    if (EHObj!=null){
    preSen=EHObj.toString();
    }else{
    preSen="";

    var reg=/^(function +[\w|\$|\.]+ *\([\w|\$|\,|\.]*\) *\{)([\W|\w]*)(\})$/;
    var preBody=preSen.replace(reg,"$2");
    var newFunObj=new Function(preBody+insSen);
    return newFunObj; 

    var currentpos,timer; 
    function initialize(){
    timer=setInterval("scrollwindow()",10);

    function sc(){
    clearInterval(timer);
    }
    function scrollwindow(){
    currentpos=document.body.scrollTop;
    window.scroll(0,++currentpos);
    if (currentpos != document.body.scrollTop) sc();

    document.onmousedown=sc
    document.ondblclick=initialize
    ie = (document.all)?true:false
    clckcnt=0;
    if (ie){
    function ctlent(eventobject){
    if(event.ctrlKey && window.event.keyCode==13){
    if(clckcntr()){
    document.forms[0].elements["actionType"].value="sc0151_upload";
    document.forms[0].submit();
    }
    }if(event.ctrlKey && window.event.keyCode==83){
    if(clckcntr()){
    document.forms[0].elements["actionType"].value="sc0151_upload";
    document.forms[0].submit();
    }
    }
    }
    }
    function clckcntr() {
    clckcnt++;
    document.forms[0].elements["fileName"].value=document.SC0151Form.uploadFile.value;
    if(clckcnt > 1){
    alert('');
    return false;
    }
    return true;
    }
      

  2.   

    <%@ page contentType="text/html; charset=GB2312" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html>
    <head onload="init()">
    <title>文件上传</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
    <link href="css/default.css" rel=stylesheet type="text/css">
    <link href="css/common.css" rel=stylesheet type="text/css">
    <SCRIPT language="JavaScript" src="js/common.js"></SCRIPT>
    <SCRIPT language="JavaScript" src="js/SC0151.js"></SCRIPT>
    </head>
    <body>
    <html:form action="/SC0151.do" enctype="multipart/form-data">
    <html:hidden property="actionType" />
    <html:hidden property="fileName"/>
    <center>
    <%@include file="SC0020Disp.jsp"%>
    <table class="NAVIGATOR">
    <tr>
    <td>
    <html:link href="#" onclick="javascript:submitActionType(document.forms[0],'sc0151_main')"> 大连FTS社区 </html:link> >>
    <html:link href="#" onclick="javascript:submitActionType(document.forms[0],'sc0151_boardView')"> 论坛一览 </html:link> >>
    <html:link href="#" onclick="javascript:submitActionType(document.forms[0],'sc0151_fileview')"> 文件一览 </html:link> >>
    文件上传
    </td>
    </tr>
    </table>
    <BR>
    <%@include file="common/BBS_0005.jsp"%>
    <TABLE border=0 align="center" cellPadding=2 cellSpacing=1 class="MAIN_CONTENTS">
    <tr>
    <td colspan=2 class="MAIN_TITLE">文件上传</td>
    </tr>
    <tr class="DETAIL">
    <td class="LEFT_LABLE"><span class="MUST_INPUT">*</span>文件路径:</td>
    <td class="RIGTH_LABLE">
    <html:file property="uploadFile" size="60"/>
    </td>
    </tr>
    <tr class="DETAIL">
    <td class="LEFT_LABLE"><span class="MUST_INPUT">*</span>文件描述:</td>
    <td class="RIGTH_LABLE">
    <html:textarea property="fileConnect" rows="15" cols="80" onkeydown="ctlent()" title="使用 Ctrl+Enter 直接提交" />
    </td>
    </tr>
    <tr class="DETAIL">
    <td colSpan="2" class="COMMAND"><html:submit value="提交" onclick="submitActionType(document.forms[0],'sc0151_upload');return clckcntr()"/> &nbsp;
    <INPUT type=reset value="取消" name=Clear>
    </tr>
    </TABLE><BR>
    <table>
    <tr>
    <td><img src="images/index_bottom.gif" width="980" height="67"></td>
    </tr>
    </table>
    </center> 
    </html:form>
    </body>
    </html:html>
      

  3.   

    可以新建一个Filter Servlet ,在doFilter方法中添加 request.setCharacterEncoding("GBK");就可以了,呵呵
      

  4.   

    在控制台与数据库中显示的编码风格应该不一致。在页面开始处<%@ page contentType="text/html; charset=GBK" language="java" //用GBK编码页面或如楼上的在录入数据库前先转下码
      

  5.   

    Filter Servlet  过滤
    ====================================
    这个在formfile里面不顶用吧,使用file.getFileName()时取出来的名字怎么都是乱码。
    还是那javascript来取文件名吧