緇忚繃鍒嗘瀽錛屽彂鐜皊truts鐨凙ctionServlet鍦ㄦ帴鏀跺埌multipart璇鋒眰涔嬪悗錛屽湪RequestProcessor涓細瀵箁equest榪涜灝佽錛歁ultiRequestWrapper錛岀劧鍚庡湪Action鎵ц瀹屼箣鍚庯紝鍙堝皢宸茬粡灝佽鐨剅equest閲嶆柊榪樺師銆備互涓嬫槸閮ㄥ垎浠g爜錛屾埅鐩碦equestProcessor錛?BR>
灝佽錛?BR>
protected HttpServletRequest processMultipart(HttpServletRequest request) {
if (!"POST".equalsIgnoreCase(request.getMethod())) {
return (request);
}
String contentType = request.getContentType();
if ((contentType != null) &&
contentType.startsWith("multipart/form-data")) {
return (new MultipartRequestWrapper(request));
} else {
return (request);
}
}
榪樺師錛?BR> 鍦╠oForward鍜宒oInclude涓湪forward鍜宨nclude涔嬪墠閮芥墽琛屼簡涓嬮潰鐨勪唬鐮侊細
if (request instanceof MultipartRequestWrapper) {
request = ((MultipartRequestWrapper) request).getRequest();
}
闂灝卞嚭鐜板湪榪欏効銆傚湪緇忚繃嫻嬭瘯涔嬪悗錛屽彂鐜皉equest鍙兘榪涜涓嬈ultipart瑙f瀽錛岃繖鎴栬鍜岃В鏋恟equest鐨勬椂鍊欒皟鐢ㄤ簡request.inputStream鏈夊叧錛岀涓嬈¤皟鐢ㄤ箣鍚庡啀璋冪敤灝變笉鑳借幏鍙栧叾涓殑鏈夋晥鍐呭浜嗐傚洜姝ゅ彂鐜皉equest鍦ㄨ皟鐢–ommonsMultipartRequestHandler.handleRequest榪涜瑙f瀽鍚庡茍榪樺師鍚庯紝璋冪敤common-upload瀵箁equest榪涜瑙f瀽宸茬粡寰椾笉鍒頒換浣曞緱鎻愪氦鍐呭浜嗭紝鍥犳褰揊orm楠岃瘉澶辮觸錛岃繑鍥瀒nput欏甸潰鏃訛紝鍗充嬌鍐嶈繘琛宮ultpart瑙f瀽錛屼篃涓嶈兘閫氳繃request.getPrameter鍙栧埌浣犳兂瑕佺殑鏁版嵁銆傝屾鏃訛紝琛ㄥ崟涓殑鏁版嵁鍗翠笉浼氫涪澶憋紙瀹氫箟鍦ˋctionForm涓殑琛ㄥ崟鍩燂級錛岃繖鏄洜涓簊truts鐨刪tml緋誨垪tag鍦╮edisplay鏃跺奸兘鏄粠ActionForm鑾峰彇鐨勩?BR>
鍦ㄥ皢RequestProcessor.doForward鍜宒oInclude涓繕鍘焤equest鐨勮鍙ユ敞閲婂悗錛岄棶棰樺緱鍒頒簡瑙e喅銆傚埌鐩墠榪樹笉娓呮涓轟粈涔坰truts瑕佽繕鍘焤equest錛岄毦閬撴槸鍥犱負chain鐨勫師鍥狅紵
webwork涓簲璇ヤ笉浼氬嚭鐜拌繖涓棶棰橈紝鍥犱負webwork涓棤璁篠ervletDispatcher榪樻槸FilterDispatcher鍦ㄥrequest wrap涔嬪悗閮芥病鏈夊啀榪樺師銆?img src ="http://www.aygfsteel.com/dev/aggbug/35337.html" width = "1" height = "1" />
]]>