<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 56, comments - 54, trackbacks - 0, articles - 4
       ::  ::  :: 聯(lián)系 :: 聚合  :: 管理

    Struts1.0.2中上傳文件功能的Bug

    Posted on 2005-12-05 10:47 Terry的Blog 閱讀(620) 評(píng)論(0)  編輯  收藏 所屬分類: java語(yǔ)言

    Struts1.0.2中上傳文件功能的Bug(日文文件名有時(shí)不能完整表示)
     
    struts1.0.2中解析"multipart/form-data"型的request時(shí)沒(méi)有根據(jù)request.getCharacterEncoding()的結(jié)果來(lái)解碼.
    當(dāng)截取filename時(shí)就可能丟失一些字符.比如文件名為"ソウス.xls"

    RequestUtil.java 
        public static void populate(Object bean, String prefix, String suffix,
                                    HttpServletRequest request)
            throws ServletException {
       
            //initialize a MultipartRequestHandler
            MultipartRequestHandler multipart = null;
            String multipartClass = (String)
            request.getAttribute(Action.MULTIPART_KEY);
            request.removeAttribute(Action.MULTIPART_KEY);
            ......
            //在這里取處理MultipartRequest的類
            multipart = (MultipartRequestHandler) Class.forName(multipartClass).newInstance();
            ......
        }
        
        // 自定義一個(gè)DiskMultipartRequestHandlerX

        ActionServlet.java
        /**
         * The MultipartRequestHandler class name used for handling
         * multipart form requests.  This is the global default value,
         * the handler can also be set in individual mapping entries
         */
        protected String multipartClass = "org.apache.struts.upload.DiskMultipartRequestHandler";
       
        public class DefaultActionServlet extends ActionServlet {
       
            protected void process(HttpServletRequest request,
                                   HttpServletResponse response) {
                try {
                    String contentType = request.getContentType();
                    String method = request.getMethod();
                   
                    //if this is a multipart request, wrap the HttpServletRequest object
                    //with a MultipartRequestWrapper to keep the process sub-methods
                    //from failing when checking for certain request parameters
                    //for command tokens and cancel button detection
                    if ((contentType != null) && (contentType.startsWith("multipart/form-data"))
                        && (method.equals("POST"))) {
                        //request.getAttribute(Action.MULTIPART_KEY);
                        // 設(shè)置處理MultipartRequest的類,也可以在struts-config.xml中設(shè)置。
                        request.setAttribute(Action.MULTIPART_KEY, "com.struts.upload.DiskMultipartRequestHandlerX");
                    }
                   

                    request.setCharacterEncoding("Shift_JIS");
                    super.process(request, response);
                  
                } catch(Exception e) {
                    log.error("encode error: ", e);
                }
            }
        }

    這個(gè)問(wèn)題在struts1.1中得到了解決.

    主站蜘蛛池模板: 97在线视频免费公开视频| 国产亚洲视频在线观看| 久久精品视频免费播放| 亚洲乱码国产一区三区| 国产成人无码精品久久久久免费| 无码国产亚洲日韩国精品视频一区二区三区| 亚洲一区二区三区四区视频| 日韩精品无码区免费专区| 最新亚洲春色Av无码专区| 在线播放免费播放av片| 亚洲欧美日韩综合久久久久| 免费国产a国产片高清网站| 深夜福利在线视频免费| 亚洲日本va在线视频观看| 日本免费久久久久久久网站| 久久精品亚洲一区二区三区浴池 | 两个人www免费高清视频| 中文亚洲AV片不卡在线观看 | 亚洲香蕉久久一区二区三区四区| 欧美男同gv免费网站观看| 亚洲精品人成网线在线播放va| 国产成人无码区免费A∨视频网站| 高h视频在线免费观看| 国产亚洲真人做受在线观看| 蜜桃视频在线观看免费视频网站WWW | 国产在线观看xxxx免费| 亚洲五月激情综合图片区| 性做久久久久久免费观看| 国产亚洲人成在线影院| 亚洲国产精品无码久久久秋霞2| 99久久99久久精品免费观看| 中文字幕亚洲精品无码| 久久久无码精品亚洲日韩软件| 亚洲免费精彩视频在线观看| 亚洲www77777| 在线观看亚洲天天一三视| 免费视频专区一国产盗摄| 少妇亚洲免费精品| 久久精品国产亚洲AV久| 亚洲一级特黄大片在线观看| 国产一卡二卡四卡免费|