<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中得到了解決.

    主站蜘蛛池模板: 亚洲精品自拍视频| 亚洲精品美女久久久久9999| 亚洲欧洲日产国码久在线| 18成禁人视频免费网站| 久久精品国产亚洲AV高清热| 男女一边摸一边做爽的免费视频| 亚洲乱码av中文一区二区| 免费大片黄在线观看yw| 亚洲一级视频在线观看| 免费人成视频在线| 亚洲avav天堂av在线网毛片| 四虎影视在线永久免费观看| 美女被吸屁股免费网站| 国产亚洲精品自在线观看| 国色精品va在线观看免费视频 | 33333在线亚洲| 最近高清国语中文在线观看免费| 国产成人无码免费视频97| 无遮挡a级毛片免费看| 亚洲无码高清在线观看| 无码国产精品一区二区免费式芒果| 久久精品a一国产成人免费网站| 亚洲片国产一区一级在线观看| 亚洲综合综合在线| 青娱乐免费视频在线观看| 亚洲人av高清无码| 久久亚洲AV无码西西人体| 最近2019免费中文字幕6| 亚洲精品无码人妻无码| 亚洲综合色视频在线观看| 99热这里有免费国产精品| 亚洲成人激情小说| 国产成人综合亚洲AV第一页| 最近的中文字幕大全免费8| 国产亚洲综合视频| 亚洲国产精品人久久| 日日AV拍夜夜添久久免费| 视频免费在线观看| 在线观看亚洲AV日韩AV| 亚洲老妈激情一区二区三区| 很黄很色很刺激的视频免费|