`
isiqi
  • 浏览: 16351073 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

J2EE综合:Struts上传多个文件的例子

阅读更多

J2EE综合:Struts上传多个文件的例子

最 近一个基于Struts的项目中要用到上传多张图片到系统中,我在网上找了一下,发现大多数都是转载的例子,对项目的作用不大,故写下了这个例子,希望对 有用到的朋友有所帮助。要求JDK1.5以上,lib库要包含如下jar文件:antlr.jar,commons-beanutils.jar, commons-collections.jar,commons-digester.jar,commons-fileupload.jar, commons-logging.jar,commons-validator.jar,jakarta-oro.jar,struts.jar这些都是 Struts中的jar文件以及Struts中的标签库文件。www.520diannao.com$ E) i0 ~0 u( a4 l( l
//可以转载,请保留出自http://www.javaresearch.org,作者anEngineer
f+ h1 B8 }) J7 f, Rwww.520diannao.com3 ^" C" u' v, _' `3 y- j
一。web.xml文件
$ i: Z2 j; q9 F* v" X5 K8 i. ?lwww.520diannao.com< ?xml version="1.0" encoding="UTF-8"?>
! M; D/ {( U( M) R( ^7 u< !DOCTYPE web-app
) J9 Z' J" }4 c1 O: j打造最好的电脑自学交流论坛PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ Y$ K- T& b4 d+ `* C9 K我爱电脑技术论坛"http://java.sun.com/dtd/web-app_2_3.dtd">
" X$ g+ h$ B) i1 ], P! S7 a- u我爱电脑技术论坛 打造最好的电脑自学交流论坛2 X* Y4 \+ f# X% N
< web-app>www.520diannao.com- B: |% J5 y2 q3 j0 @6 P; U
< servlet>$ O' \9 ~3 H# H+ _
< servlet-name>actionServlet< /servlet-name>
+ F1 ]. D# B* w9 G- r7 r < servlet-class>org.apache.struts.action.ActionServlet< /servlet-class>
" x+ n' a5 Rc% E& j~M/ Y < init-param>我爱电脑技术论坛) P8 y: {1 ~- j: e; b8 T
< param-name>config< /param-name>
; ^: d! @7 z# r: T打造最好的电脑自学交流论坛 < param-value>/WEB-INF/struts-config.xml< /param-value>打造最好的电脑自学交流论坛1 XS) f9 c2 Q5 C. V% l% D% \9 }
< /init-param>www.520diannao.com5 I4 r( w$ w) m
< init-param>u* \/ dr+ s& ^$ ]
< param-name>debug< /param-name>打造最好的电脑自学交流论坛6 i# @% ^& F$ i( P
< param-value>2< /param-value>
, T7 C; iQ. w4 ^' Q\ < /init-param>& R; N& @/ S3 E: Y9 h
< load-on-startup>0< /load-on-startup>我爱电脑技术论坛1 |) N$ G9 J! D' c. Y
< /servlet>
% [+ \) p/ sw9 P% Uwww.520diannao.com < !-- struts actionServlet mapping-->
6 u8 o0 G2 m' C2 o' F4 ?9 P( a0 ~. G我爱电脑技术论坛 < servlet-mapping>
1 N. o# c; e6 F5 w) Kwww.520diannao.com < servlet-name>actionServlet< /servlet-name> 打造最好的电脑自学交流论坛- Z5 V0 i+ f# @, f! a' M
< url-pattern>*.do< /url-pattern>我爱电脑技术论坛: X# W$ s$ B0 e& s% A
< /servlet-mapping>1 A7 \, I: |7 v* j) S$ g) w
< !-- welcome file list -->
" i5 n1 e8 x0 e9 ~4 P6 Uwww.520diannao.com < welcome-file-list>www.520diannao.com& m1 }7 x1 y- |4 n
< welcome-file>index.jsp< /welcome-file>
. l4 Z- v: @- J我爱电脑技术论坛 < /welcome-file-list>f# D; Y9 C9 x! e7 D1 a! W
< !-- error handle -->2 M% y2 O. s- D) l8 o- {
< error-page>我爱电脑技术论坛1 Q/ c: N8 ?8 K: \% s
< error-code>404< /error-code>www.520diannao.com1 H' z6 J# B( Ny& {. J
< location>/error.jsp< /location>( J/ z: O- s' [2 Z" D
< /error-page>
( T% i- g; n, B! X7 x+ w< /web-app>0 X3 Z2 Z& x- r& N: l, x
# f6 r' [# x3 {1 j" k
二。struts-config.xml文件
0 H. A8 {; S/ d$ ]5 j打造最好的电脑自学交流论坛, |! t; M2 i! f) }5 sj
< ?xml version="1.0" encoding="ISO-8859-1" ?> 我爱电脑技术论坛0 Q& J1 k- Z- V
< !DOCTYPE struts-config PUBLIC
5 H2 u4 T/ \- r0 w8 Q- J打造最好的电脑自学交流论坛 "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"www.520diannao.com3 H3 c1 j- M& D, V& J
"http://struts.apache.org/dtds/struts-config_1_2.dtd">G* P4 Z3 v4 ]$ f: Z
< struts-config>1 E+ C0 c0 V% ]0 l& Y
< !-- form beans -->
: w& ]3 u0 V! P9 | < form-beans>我爱电脑技术论坛0 ~# X* `: g0 }5 @0 a
< form-bean name="uploadForm" type="org.apache.struts.action.DynaActionForm">
! O. Q) j& p3 A/ E/ E# u# N4 _ < form-property name="type" type ="java.lang.String[]"/>我爱电脑技术论坛. u: b" |& Q1 V& @/ p4 q6 d+ }
< form-property name="name" type ="java.lang.String[]"/>
6 I' c+ Y0 n9 o我爱电脑技术论坛 < form-property name="file0" type ="org.apache.struts.upload.FormFile"/>$ c* @" v5 q( W# B# Y1 c4 d6 e; t! n
< form-property name="file1" type ="org.apache.struts.upload.FormFile"/>
) l: L& R' r) m9 j3 E < form-property name="file2" type ="org.apache.struts.upload.FormFile"/>
) y) l6 W3 X( B打造最好的电脑自学交流论坛 < form-property name="file3" type ="org.apache.struts.upload.FormFile"/>
& T7 m2 u% L6 l* h! J < form-property name="file4" type ="org.apache.struts.upload.FormFile"/>
0 i1 }% U* N. v% F3 N$ D' L < form-property name="file5" type ="org.apache.struts.upload.FormFile"/>
) W* e6 j- I3 {; I1 D( E( `9 U" bwww.520diannao.com < form-property name="file6" type ="org.apache.struts.upload.FormFile"/>打造最好的电脑自学交流论坛0 q; C+ P" W% ~0 J9 Y}! [
< form-property name="file7" type ="org.apache.struts.upload.FormFile"/>
/ @( _7 }" S& H+ H# p( P2 e < form-property name="file8" type ="org.apache.struts.upload.FormFile"/>
, `1 T# t8 T- ]* E) h' \我爱电脑技术论坛 < form-property name="file9" type ="org.apache.struts.upload.FormFile"/>
3 B4 fH% w. `9 x- c打造最好的电脑自学交流论坛 < /form-bean>www.520diannao.com# [# i7 y, X" j/ U
< /form-beans>
0 c+ K# _$ Z: N3 ]/ z* Z) bwww.520diannao.com < !-- forward -->
' i" W! v3 a4 v% H+ \- X < global-forwards>
! B- m9 ?5 v2 t8 [我爱电脑技术论坛 < forward name= "successed" path="/index.jsp">< /forward> 打造最好的电脑自学交流论坛% c. V9 f& |( C2 ~% H; @0 \" t
< forward name= "failed" path="/error.jsp">< /forward> 我爱电脑技术论坛& V; }: tq; h
< /global-forwards>
; _& L\% K. c$ w < !-- action handle-->. jY; s" rc
< action-mappings>打造最好的电脑自学交流论坛4 e. R: ?. X, x9 n* S9 H, @6 J7 q' i
< action path="/uploaded" type="com.fangchuang.action.UploadAction"
( e* y1 R6 k0 @" o" \: r0 r name="uploadForm" scope="request" input="/upload.jsp">
6 X1 H+ O2 |c我爱电脑技术论坛 < forward name="uploaded" path="/upload.jsp">< /forward>
$ V, K+ D2 T9 s8 \% J < /action>www.520diannao.com: c! h% u8 j" O. j8 c# j: D
< /action-mappings>
# a: f) Y/ W" T1 D% [. w^7 |< /struts-config>" Z8 P1 m( z8 r8 S( a! o

) l& |+ [9 {$ k/ E8 ]9 H7 ^7 s9 P三。upload.jsp文件3 m" Q8 d3 W1 F$ F9 x2 V" Y( F. G. b
< %@ page language="java" import="java.util.*" pageEncoding="gb2312" errorPage="error.jsp"%>
# R# }4 w1 ~# h, M9 A8 O6 n我爱电脑技术论坛
2 l6 \" j6 m! a$ Fa< %@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
. c4 @. a& e" f! y< %@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>* m+ k/ t; {/ k/ ]% s7 l0 y' T|
< %@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%># Z* \7 |# @' s
< %@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="title"%>. n& h9 [! f; [6 Zh9 r0 x

* w5 ^0 Q( M& n) o{/ G6 l+ B. ^( b< !-- 上传多个文件的jsp文件
0 G5 p& l& X' `, V0 |! t //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer
, J* w" s4 @5 U7 U2 D|6 ^-->www.520diannao.com, D' T4 Y& B+ O
< html>- D* n% E1 }# _& O5 L4 |1 c; y
< head>打造最好的电脑自学交流论坛2 T+ t6 w+ T; o. s
< title>上传多个文件的jsp文件< /title>
6 f' c8 P8 Y# T" M7 ?3 b8 n5 N打造最好的电脑自学交流论坛< meta http-equiv="pragma" content="no-cache">打造最好的电脑自学交流论坛- Z+ M' Z5 F. M
< meta http-equiv="cache-control" content="no-cache">打造最好的电脑自学交流论坛5 G7 V" B% g& f2 s$ c; ]
< meta http-equiv="expires" content="0">- J" x3 YZ# {: z) g& ^5 D
< meta http-equiv="keywords" content="struts,多个文件,上传">打造最好的电脑自学交流论坛. W" }4 ~; K) D
< meta http-equiv="description" content="This is a test">打造最好的电脑自学交流论坛* V. a3 D! d4 d
< /head>我爱电脑技术论坛" N9 t. i) Q8 }) G( U4 k/ n
< body>; J9 Q; C( j6 e2 w; w' O7 L

4 v% Y9 O1 K" J# ^/ O< html:form action="uploaded.do" enctype="multipart/form-data" method="post">
, o8 N3 ~/ B& J) } < table border="1" width="80%" align="center">7 c% O. ws7 I) r! Q. a2 B
< tr bgColor=#62bcff>
. {( _" D5 ]+ k' K我爱电脑技术论坛 < td align="left">文件类型< /td>我爱电脑技术论坛5 e% y3 t, H1 F. N+ N
< td align="left">文件描述< /td>
/ j" p# g5 V8 p! V) M- rz- v < td align="left">文件名< /td>我爱电脑技术论坛8 I' W5 Z/ ?+ I
< /tr>
: f* m& l) G; |. {www.520diannao.com" J; R: f1 J0 e. B+ Z4 }
< tr>www.520diannao.com4 m: k9 O) n* a+ f7 F) ^6 `- A
< td align="left">< select name="type">
6 w1 G2 u3 `. w) P* @+ v打造最好的电脑自学交流论坛 < option value="1" selected>湖南省< /option>5 n( t! r* k: t$ H# p1 Z6 ~' \0 A
< option value="2">湖北省< /option>www.520diannao.com+ F9 P8 q4 i" z; |; r
< option value="3">广东省< /option>
+ C$ e' S8 G, _' p; ^9 Q8 o < option value="4">北京市< /option>
* d6 t. e8 X0 ^5 z- G3 V1 ^; x < option value="5">上海市< /option>
( w* U9 W! \. |, A% z9 s < /select>< /td>7 K, Q! g4 ~' I7 {$ }

4 {! }* P8 m1 ^+ `+ k1 r < td align="left">< input type="text" name="name" value="">< /td>www.520diannao.com5 T5 p6 F/ i4 R2 ^9 p. m" x9 }8 ~

( gh9 s, Y0 F* f' fwww.520diannao.com < td align="left">< input type="file" name="file0" size="35" value="">
) j7 P8 N. Z. j5 J. s( L打造最好的电脑自学交流论坛 < /td>
% r- l+ Z& ], ]) R# Twww.520diannao.com < /tr>www.520diannao.com, C& \7 V: s5 s2 E
; M) t% k( G) y+ mB

9 N& n$ ]; D+ Jwww.520diannao.com < tr>我爱电脑技术论坛, i4 `8 x9 X' T1 `9 ?+ _. D
< td align="left">< select name="type">www.520diannao.com) v1 H/ v9 n$ ^' M& x1 k# M
< option value="1"selected>湖南省< /option>( {& w. b; T- F0 N6 Y8 h- a& x
< option value="2">湖北省< /option>
4 W9 `N# K/ Xh: i6 R < option value="3">广东省< /option>4 f7 X/ T1 B6 b
< option value="4">北京市< /option>
1 s9 D0 D# d0 p5 P2 a < option value="5">上海市< /option>9 x1 J7 X* P- T2 ^! ^$ U
< /select>< /td>* L9 }$ o: X8 mB0 ~
4 \7 B' ~0 B! Q( u8 X
< td align="left">< input type="text" name="name" value="">< /td>
: A( x. n" U, y: Wwww.520diannao.com
9 @: S* F+ l- i0 k4 J6 G3 p( p < td align="left">< input type="file" name="file1" size="35" value="">: U; H$ H" R1 x3 B+ A5 O
< /td>
$ y) y; R|5 q1 Iwww.520diannao.com < /tr>我爱电脑技术论坛7 Z8 i! Y. p^: ]+ @0 y" ~( x
< tr>' ~7 [- Y+ F" A; k8 U
< td align="left">< select name="type">
& G3 J, L% n( x4 c4 b* O < option value="1">湖南省< /option>
: H, j% a) M( e. ~- d < option value="2"selected>湖北省< /option>
% j+ H/ [! m2 u打造最好的电脑自学交流论坛 < option value="3">广东省< /option>
: u- p" m% Z0 I9 o; S8 Q' s1 awww.520diannao.com < option value="4">北京市< /option>我爱电脑技术论坛9 B: v& ?6 H: a7 s: }% |! u
< option value="5">上海市< /option>
8 O! x' n3 M- \$ i$ _: n我爱电脑技术论坛 < /select>< /td>www.520diannao.com% v' ?( a. Y) o3 ]) H

4 O0 M4 B8 m$ X; p < td align="left">< input type="text" name="name" value="">< /td>3 U7 J6 c3 o' z4 Ub
1 H3 [# C8 Q8 w9 L; o0 x
< td align="left">< input type="file" name="file2" size="35" value="">
* N7 h! }9 U: h < /td>打造最好的电脑自学交流论坛3 I8 R2 c; z6 f
< /tr>打造最好的电脑自学交流论坛" z" i( C! s( f; ~1 C5 ]) G! r
< tr>4 R: H2 |7 f9 E" A
< td align="left">< select name="type">
) d. f: }9 k0 y3 l < option value="1">湖南省< /option>
/ |; y4 `0 a. ^8 j0 o' d8 ?打造最好的电脑自学交流论坛 < option value="2"selected>湖北省< /option>1 o+ z% ~8 U- Z' g) R
< option value="3">广东省< /option>" m4 d4 H0 a) G, c2 X2 }
< option value="4">北京市< /option>
7 a4 U5 u/ v$ C% E2 ] < option value="5">上海市< /option>6 }8 ~: n/ x3 s) [: U5 ~- \0 @
< /select>< /td>
7 w. T! i& d8 w! G
2 C& B2 D# C0 E/ C. Jwww.520diannao.com < td align="left">< input type="text" name="name" value="">< /td>
$ F4 h/ k. IN1 V* ~% W. Zwww.520diannao.com
- H6 O+ N* g& l# S: H7 d5 [www.520diannao.com < td align="left">< input type="file" name="file3" size="35" value="">www.520diannao.com( u+ }7 k- u1 @1 q9 z
< /td>3 Y$ G7 zH, G2 ]# C' D
< /tr>打造最好的电脑自学交流论坛' k2 `8 z/ f. y3 Z5 c/ r
< tr>
" `' n4 K2 D& R5 b) e$ kwww.520diannao.com < td align="left">< select name="type">
# |, m4 G1 M, t1 G8 R$ l < option value="1">湖南省< /option>
1 g/ g1 h( U1 ?7 _1 {+ D6 pwww.520diannao.com < option value="2">湖北省< /option>
3 h* \2 H$ a@, O- I/ E6 V( p4 z打造最好的电脑自学交流论坛 < option value="3"selected>广东省< /option>www.520diannao.com5 L! b( N3 H( P0 Q3 }; D- V, X
< option value="4">北京市< /option>我爱电脑技术论坛; p% o_. U, e5 e" B9 T
< option value="5">上海市< /option>www.520diannao.com5 S, J2 t$ \2 X& p( D
< /select>< /td>
: g$ Y% J8 f( F* j2 s
' V, U; p; k( k/ L9 \ < td align="left">< input type="text" name="name" value="">< /td>我爱电脑技术论坛) Y+ b$ _+ F8 J( X2 {* ^r

6 N* c: R! M/ y% i% m+ | < td align="left">< input type="file" name="file4" size="35" value="">
# V, J0 Z8 C1 c6 _ < /td>www.520diannao.com0 l# ]- T9 U5 y" M4 ]) C
< /tr>
2 l, |/ N! a5 R: w+ \+ |# Y, [# o < tr>
9 S0 |" g1 |! l- C < td align="left">< select name="type">3 U5 D4 J# }* C/ G; E6 r/ O
< option value="1">湖南省< /option>
5 K! G' S3 ~* u# _- WR- ]4 B < option value="2">湖北省< /option>' @8 M% T& [. m# Kr
< option value="3"selected>广东省< /option>
( Y' N@# L' v/ N- q0 I < option value="4">北京市< /option>
" k# L, i: ], G/ l) W: v打造最好的电脑自学交流论坛 < option value="5">上海市< /option>
1 I7 R6 U+ @/ p9 }) j < /select>< /td>www.520diannao.com* K! R5 T: m" ]: Q
我爱电脑技术论坛/ X% e( ~; n* C" c/ X8 H$ ]
< td align="left">< input type="text" name="name" value="">< /td>* |7 U; W/ X! u: I4 a2 u/ U6 p& U
* m1 at_2 |_- {# T4 F7 [
< td align="left">< input type="file" name="file5" size="35" value="">
& c! Q& G" D' _7 z) G < /td>我爱电脑技术论坛7 v5 C: p& p# i" b
< /tr>
( ]0 r9 ^6 N$ Z6 v( ] < tr>
/ Y+ A, r3 z, t < td align="left">< select name="type">5 I2 ?$ I3 a/ H7 @
< option value="1">湖南省< /option>
1 \+ ]) fP( T: Z6 U( |打造最好的电脑自学交流论坛 < option value="2">湖北省< /option>' L6 n2 Q" u6 M4 e}
< option value="3">广东省< /option>; y# f6 _$ X# V! v2 E
< option value="4"selected>北京市< /option>
- L/ [% bG7 A8 v' Z+ n' {www.520diannao.com < option value="5">上海市< /option>' `3 RF, e3 m/ C$ H- n' ?
< /select>< /td>www.520diannao.com2 ^. G5 N1 g5 a" G8 ^$ Y( ~# ^

5 P' ~* r" J8 o5 u0 v我爱电脑技术论坛 < td align="left">< input type="text" name="name" value="">< /td>7 \" b" F, T/ m- J2 S# T) t: g6 W

$ g, N0 l, mr/ {5 k, T我爱电脑技术论坛 < td align="left">< input type="file" name="file6" size="35" value="">打造最好的电脑自学交流论坛: f' f0 `1 Y) S/ g8 q) e
< /td>9 z% V6 b0 ]7 b6 t1 n3 {% `2 |
< /tr>我爱电脑技术论坛) l9 u& }/ B. z' h7 j4 V9 y
< tr>我爱电脑技术论坛+ v% e5 [. f" }- ?9 `/ U# n
< td align="left">< select name="type">9 C5 Q: c6 ~4 W2 f
< option value="1">湖南省< /option>
9 W6 n- o' {% G我爱电脑技术论坛 < option value="2">湖北省< /option>
2 l% W) B4 c% r < option value="3">广东省< /option>
3 a! Z- e1 T- L7 swww.520diannao.com < option value="4"selected>北京市< /option>+ }) ^" s" R/ k) ~: H5 d4 ?/ K
< option value="5">上海市< /option>我爱电脑技术论坛6 r9 o. f2 f5 {) t$ n& \8 P( U
< /select>< /td>6 L7 l7 l; }8 ~" \" d$ K. D" ?$ q

& f) O6 f9 U/ q7 @. N% ^6 x我爱电脑技术论坛 < td align="left">< input type="text" name="name" value="">< /td>6 H( }3 w! |8 N) [/ B1 k

4 c8 i$ d0 s0 K+ E我爱电脑技术论坛 < td align="left">< input type="file" name="file7" size="35" value="">
8 o- ^/ n+ qf% s打造最好的电脑自学交流论坛 < /td>Y0 f1 jn$ o5 P% |[
< /tr>
1 sF8 ND/ ^) Z打造最好的电脑自学交流论坛 < tr>
% M8 E! H/ f) \* C8 x+ EO打造最好的电脑自学交流论坛 < td align="left">< select name="type">我爱电脑技术论坛9 z$ Q) P. X5 b: S5 x7 H; w
< option value="1">湖南省< /option>
+ \- n% n: x) x$ B打造最好的电脑自学交流论坛 < option value="2">湖北省< /option>
9 u; h1 V, J* v9 S+ k+ F% V/ p# v我爱电脑技术论坛 < option value="3">广东省< /option>
7 l' a1 w' G" n/ r: c% g < option value="4">北京市< /option>
* \# n' N8 g. \3 y) B < option value="5"selected>上海市< /option>
. l, K( U# O: m. o3 c/ \ < /select>< /td>
# u1 W* B% t% N* T
7 n4 i/ U% _# t/ u5 p/ r- m < td align="left">< input type="text" name="name" value="">< /td>打造最好的电脑自学交流论坛w7 D0 L]" a+ }; J

! R/ n' k: G% g. h( }/ [+ gwww.520diannao.com < td align="left">< input type="file" name="file8" size="35" value="">) \9 N) V6 F' b+ Y! k# A( n
< /td>打造最好的电脑自学交流论坛3 O, v/ _( {9 b
< /tr>我爱电脑技术论坛9 e7 @! t1 _0 }5 {/ Y; ?" P
打造最好的电脑自学交流论坛% i, L+ `- ?$ A1 y$ U
打造最好的电脑自学交流论坛% {2 q, A# b0 ^: |2 c
< tr>' ~" A7 C& `a! R) W
< td align="left">< select name="type">
- y/ Z# Z! ^* D( \* x, | < option value="1">湖南省< /option>+ S( g: B, ?& v! e. z
< option value="2">湖北省< /option>( N1 ^5 V1 G. w
< option value="3">广东省< /option>) w$ R4 @8 \" Y& v4 i
< option value="4">北京市< /option>+ R' z4 Z7 w+ g% T
< option value="5"selected>上海市< /option>
- `" |9 t5 k, ]U* ^打造最好的电脑自学交流论坛 < /select>< /td>
: L- Z# _7 Y3 [2 _2 l* K6 T
: c% p: B; H) W7 ^ < td align="left">< input type="text" name="name" value="">< /td>我爱电脑技术论坛# I/ u/ v0 \# J2 \" c" O4 m8 T: G

" l5 I+ S[" o1 n- U6 C < td align="left">< input type="file" name="file9" size="35" value="">打造最好的电脑自学交流论坛7 F2 u6 Q! q) c# ?! D
< /td>* u3 d6 t0 p9 I5 j4 N( J, y
< /tr>5 }4 k9 {) k! [& c

# ?2 \6 C: d/ ?$ r2 q* f打造最好的电脑自学交流论坛 < tr>
9 X! Y) _: ^- r4 F0 D' Q' F我爱电脑技术论坛 < td align="left"> < /td>我爱电脑技术论坛# ]( Y+ W# K7 q* f: r8 c; k
< td align="left"> < /td>
! e7 E# H9 ~, T! q$ i2 Z < td align="left">< input type="submit" value="上传文件" value="submit"
2 _0 I& p& C* _) n& Wwww.520diannao.com onclick="return(confirm('你确认要上传文件吗?'))">< /td>. d# @" o( n+ ~
< /tr>1 L" D; g! E" b6 i2 ^

7 C' w, u* n# E我爱电脑技术论坛 < /table>www.520diannao.com( N( t" G# n- k
< /html:form>我爱电脑技术论坛' M; ?+ G3 ^. {* M% d6 y( M5 R

, M& |j: C: f6 O7 cQ< /body>www.520diannao.com$ d" D. u7 Q4 w! I0 j0 n
< /html>
# V1 }- a) ~8 u4 x' uk8 Kwww.520diannao.com
^1 K* U+ V: K6 W8 d3 R1 P& G我爱电脑技术论坛四。还有两个简单jsp文件index.jsp,error.jsp可以自己写。
8 s: d& X- W) }1 Z2 `0 |
; e0 b. G8 _# ?* v* ?' K打造最好的电脑自学交流论坛五。action文件
4 G# y- r2 K( W) n
; Y1 P9 ~' e' D; X. N$ p+ l. j8 Epackage com.fangchuang.action;
- _( c( P8 f- U1 |) X/**' v( e: ?1 B9 i' k. V4 s/ R0 @) S
* @author anEngineer 处理上传文件action
5 Y5 T2 R* ]- C- M, a */8 J. z3 O8 S5 c9 u- y' j
public class UploadAction extends Action {
- A0 q, ^. g0 a5 y' Q% J. mwww.520diannao.com public ActionForward execute(我爱电脑技术论坛/ Z: y/ A, p6 P
ActionMapping mapping, www.520diannao.com( c+ h0 ?$ I; P
ActionForm form,www.520diannao.com, f8 M# M5 w( J5 }- t' Z1 c
HttpServletRequest request,
- z' a" [9 R$ l$ I9 hG打造最好的电脑自学交流论坛 HttpServletResponse response) {+ A7 |( k% t: K/ P
//可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer
3 a! n6 I- F9 v我爱电脑技术论坛 DynaActionForm fileForm = (DynaActionForm) form;我爱电脑技术论坛9 U1 x+ `8 Z$ O# p
String[] types = (String[]) fileForm.get("type");我爱电脑技术论坛- B' T8 Q! I& T' o9 [) ?( D1 P
String[] names = (String[]) fileForm.get("name");
: WH3 h) P8 b- q: qwww.520diannao.com我爱电脑技术论坛& \S6 s& E% a' u
FormFile file0 = (FormFile) fileForm.get("file0");
* q' pq. T$ R0 p% l0 Wwww.520diannao.com FormFile file1 = (FormFile) fileForm.get("file1");
% }2 G: I$ i+ m" v: o8 |9 s/ ?打造最好的电脑自学交流论坛 FormFile file2 = (FormFile) fileForm.get("file2");我爱电脑技术论坛1 {6 ?2 u2 r' h- t0 h- X" `( U
FormFile file3 = (FormFile) fileForm.get("file3");
* w4 T7 L4 o1 x, Q% @\5 C1 iwww.520diannao.com FormFile file4 = (FormFile) fileForm.get("file4");* b) k1 Q0 M/ }$ V0 M
FormFile file5 = (FormFile) fileForm.get("file5");www.520diannao.com0 ~& G; _) f# [3 s) I2 T
FormFile file6 = (FormFile) fileForm.get("file6");7 D: o) h$ {% U0 j/ N1 R" wT
FormFile file7 = (FormFile) fileForm.get("file7");3 e6 G1 i; T; i6 o3 i$ ]! h
FormFile file8 = (FormFile) fileForm.get("file8");3 n' f. }! v/ w5 J) S3 Q
FormFile file9 = (FormFile) fileForm.get("file9");
% h& V, e+ q( D+ w4 Q
! g1 _8 h* p8 K, h Map< String, FormFile> fileMap = new HashMap< String, FormFile>();+ F2 q* C+ [/ E/ i* J+ @
fileMap.put("file0" + "*" + types[0] + "*" + names[0], file0);我爱电脑技术论坛3 R0 E3 [( q9 B$ U
fileMap.put("file1" + "*" + types[1] + "*" + names[1], file1);
& k9 q% a2 g2 C$ ?: g我爱电脑技术论坛 fileMap.put("file2" + "*" + types[2] + "*" + names[2], file2);
7 P% Y+ m8 M- }# y* H+ W/ @我爱电脑技术论坛 fileMap.put("file3" + "*" + types[3] + "*" + names[3], file3);我爱电脑技术论坛1 x# e% q) gk
fileMap.put("file4" + "*" + types[4] + "*" + names[4], file4);
8 G" p% y/ Q- G% S2 Z) bwww.520diannao.com fileMap.put("file5" + "*" + types[5] + "*" + names[5], file5);
2 m4 D$ i; ~9 T fileMap.put("file6" + "*" + types[6] + "*" + names[6], file6);
. B1 p( g4 ?wl: A我爱电脑技术论坛 fileMap.put("file7" + "*" + types[7] + "*" + names[7], file7);打造最好的电脑自学交流论坛0 h- H' D- q1 W# S, Q6 B! a
fileMap.put("file8" + "*" + types[8] + "*" + names[8], file8);
3 m4 X- A* _: E; Q" t打造最好的电脑自学交流论坛 fileMap.put("file9" + "*" + types[9] + "*" + names[9], file9);
7 s$ k! Z) V2 p' |www.520diannao.com
& Z8 ?2 ~/ g- K打造最好的电脑自学交流论坛 Set fileSet = fileMap.entrySet();, ?K7 H9 [* X6 q$ L1 A0 P! k
Iterator iter = fileSet.iterator();打造最好的电脑自学交流论坛6 g% \3 i( ?* X
5 v- `. n0 G+ z! w. D' o- }
// 取当前系统路径E:\Tomcat5\webapps\strutsUpload\ 其中strutsUpload为当前context2 h& a% k* M& z2 k8 O
String filePath = this.getServlet().getServletContext().getRealPath("/");# d+ z! _]7 f$ W. B1 d% l; {
// 保存文件的文件夹3 q! pCp' y$ b
File savePath = new File(filePath + "UploadFiles\\");
3 L! }( i" d& ? filePath = filePath+ "UploadFiles\\";
+ [3 u/ ]- Z' K2 a# r0 xwww.520diannao.com if (!savePath.exists()) {
& u- e$ }: f& T& ?+ s打造最好的电脑自学交流论坛 savePath.mkdir();
/ A; Z6 ~' F6 ?5 M& q1 ^, \! x% Z }+ t# A: ~: _- J( [4 l6 O
while (iter.hasNext()) {
. q# G0 ?! S4 G6 G; U$ |( Q5 a. _ Map.Entry unit = (Map.Entry) iter.next();
, m: QB! f* M' h$ L. J打造最好的电脑自学交流论坛 String key = (String) unit.getKey();
7 y2 c7 w: u5 S: A, ^. P* {- nwww.520diannao.com FormFile file = (FormFile) unit.getValue();
. n; e4 o7 d% Bl7 N) Y, T5 jwww.520diannao.com //文件大小符合要求,且是图片文件7 k4 E' a7 f4 t. U2 g# d
if ((file.getFileSize() >= 1)&& DealPhoto.isPhoto(file)) {
0 h' V2 }0 k2 ~0 v9 W! q //图片类别
0 I$ W: z5 P2 ~! ]& { String photoType = key.substring(key.indexOf("*") + 1, key我爱电脑技术论坛6 L# ~" w3 _7 R) N* e) G5 N* H
.lastIndexOf("*"));
. b6 u5 o$ i2 k+ [% ~6 J打造最好的电脑自学交流论坛 //图片描述
& N) _/ i: l- S+ R打造最好的电脑自学交流论坛 String photoName = key.substring(key.lastIndexOf("*") + 1, key
2 h! H$ w, U; ~我爱电脑技术论坛 .length());
# z4 {) n5 @! k( O" _- fM- [. l2 y我爱电脑技术论坛 打造最好的电脑自学交流论坛0 C( {. e" D' C. V8 L
//存数据库操作,在数据库中保存文件的名称,类型,及在服务器上的相对路径- c3 U, x7 ^' _6 ^( K
//1 S/ s, `2 H+ W2 V( T" `
" l3 z9 O1 N) M) K4 o4 y9 {( g( c
//判断是否重名0 S( `$ I. u3 @$ ^7 s
if(DealPhoto.isFileExist(file.getFileName(),filePath))
: r3 K6 n0 G/ r3 q# N DealPhoto.rename(file.getFileName(),filePath);
_' q. a. I5 T! Y; T, Z try {5 M, A' {+ E/ U6 C' x" n4 U
InputStream stream = file.getInputStream();// 把文件读入打造最好的电脑自学交流论坛3 X$ k+ M# m2 e6 K- R
// 建立一个上传文件的输出流 打造最好的电脑自学交流论坛! D8 _) _+ w5 X) m, H: W8 B
OutputStream bos = new FileOutputStream(filePath+file.getFileName());- l; lv1 q( e$ |
int bytesRead = 0;
" Q' r. N, P' O& p: h. N byte[] buffer = new byte[8192];
0 e8 f' e- \8 b. N6 S3 S7 C打造最好的电脑自学交流论坛 while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
! G3 i5 y: G0 z, s! Z7 Q" a bos.write(buffer, 0, bytesRead);// 将文件写入服务器
5 HJ# N- D. w" swww.520diannao.com }5 ?7 T* x# o- J. @( o
bos.close();
h. [0 K' x( ?7 p2 d% Mwww.520diannao.com stream.close();我爱电脑技术论坛. M7 a+ {& J7 _v3 ^6 O" R4 B& _; `* W2 ^
} catch (Exception e) {
" E$ L* j- s9 M; Pwww.520diannao.com e.printStackTrace();打造最好的电脑自学交流论坛6 z6 S5 J: }: i% z) n
}我爱电脑技术论坛# k7 Y- X" N/ a8 q6 {+ i; L
}( Y( M& r: C& i( V- a+ L
www.520diannao.com6 p5 x2 D; w- [0 I1 L1 k& C$ Z
}* g) h) i4 _+ [6 JV
return mapping.findForward("uploaded");C# t9 t+ ?5 X' t
//还有其他可以改正的地方,如错误信息提示,把照片处理函数放到一个公用类,写文件操作等
2 Q' t0 o$ Q7 o我爱电脑技术论坛 //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer " p% C4 A7 N* x( h& l6 N7 g0 W
}
# X- N! g# K8 i}
0 U- U6 H& c& m8 k
) V% c5 i# m0 n/ V: H/ W六。照片处理类文件
; V@& v9 ~5 x+ B2 @我爱电脑技术论坛package com.fangchuang.run;
3 x7 t" M% v' Q/**
+ U, e0 w4 s" Ic( z" \打造最好的电脑自学交流论坛 * 图片处理
) B: [& U- T6 E$ D1 a * @author anEngineer: S# ?/ j0 v) ~f
*
# X% J$ Y& ~8 D% U1 v( g我爱电脑技术论坛 */
! P6 ]6 Q9 t' [& [7 |" |3 B6 s/ Xpublic class DealPhoto {
; t) }3 w- I+ h8 M6 K. s/ v5 m /**我爱电脑技术论坛1 x4 X6 A' \6 h6 _2 j
* 判断照片类型 .jpg .png .gif 目前只支持这三种格式我爱电脑技术论坛+ W8 ~, }: B, e# m" g
* @param file打造最好的电脑自学交流论坛) e$ A8 u3 ]. g) ]4 _- r7 ^: t
* @return4 ?$ F' x+ D: Z0 Q, Q/ n2 M
*/
+ ~/ F9 Y9 S- ?1 z; ?; Mwww.520diannao.com public static boolean isPhoto(FormFile file) {
. Kh+ i7 Y& Q4 f( U$ S0 u# D打造最好的电脑自学交流论坛 String fileName = getString(file.getFileName());X3 ]( j3 h; x' Q: u0 T" z, W
if (fileName.equals(""))打造最好的电脑自学交流论坛% b# T}% R|
return false;5 H8 EXk$ g
if ((fileName.toLowerCase().endsWith(".jpg"))
! V& u/ q( k. c( q8 E( ?www.520diannao.com || (fileName.toLowerCase().endsWith(".gif"))我爱电脑技术论坛0 O/ A; r& Z: C. w& b. p
|| (fileName.toLowerCase().endsWith(".png")))我爱电脑技术论坛/ PQ% E; k' _: E( R* O) I
return true;) J' O4 G6 \9 w$ i3 E+ ]D4 |
else9 {9 F" i2 V1 B7 v
return false;& l, R+ |# ?7 U6 a& I) ^
}
" z9 R/ M% W: m; e+ m5 I
5 N/ k7 W1 g2 Y( G" k% ~8 {' W /**$ {. y# a6 P4 _* J/ Z* I
* 打造最好的电脑自学交流论坛* g$ V3 h" ^' H" Z* O
* @param str
! K& F: n: ~4 w * @returni: E% u& M2 s& J7 e! a* o( \
*/5 H+ ?3 o# O5 I; a" T3 }
public static String getString(String str) {www.520diannao.com; ^4 Q: l' }1 G! Y9 mj6 E
if (str == null)& L5 U/ l, Q. c* W4 j9 H4 |
str = "";
: ]1 Y" ?$ s/ `5 D打造最好的电脑自学交流论坛 if (str.equals("null"))' K2 v9 w: }% D8 @* X1 O* e: w
str = "";
$ p, K' p9 f9 \$ j+ I2 B str = str.trim();
) h; W; Y- X% o0 y我爱电脑技术论坛 return str;打造最好的电脑自学交流论坛* q: I6 y9 n) v' R1 Q6 O' W9 R
}
" m. C& g& p, f2 w/ P$ R& l$ A1 s
( l& m0 Z* G, x- \# b& ~+ q. }我爱电脑技术论坛 /**打造最好的电脑自学交流论坛- v2 ~+ x1 D' T8 l& \. b) ?, \
* 判断文件是否存在
7 ^, k$ N. ?5 y * @param fileName7 F" b* @3 R8 K& h
* @param dir
5 p2 j5 R/ e* E% Q2 [ * @return* J% G0 C4 z/ u( x
*/我爱电脑技术论坛% Q+ L- L! A+ d$ ^. u! e0 n3 m
public static boolean isFileExist(String fileName, String dir) {5 C. S; d3 U# J$ g9 U
File files = new File(dir + fileName);
/ s) b6 |" p( x3 zwww.520diannao.com return (files.exists()) ? true : false;
7 W9 [5 x" P) m" \) n我爱电脑技术论坛 }0 {( D* k0 _) m/ D% I- J

& ^% z! T2 S) `8 X; w' ] /**
5 z, i! R3 j. V* ?/ m# ]gwww.520diannao.com * 重命名$ s+ Z) u4 H6 e. N5 s! ]# c
* @param fileName4 b6 z0 I1 ]! f2 \* R, N+ T$ [
* @param dir
+ F2 ]6 R' g; d0 @ */$ E: q1 X" D$ \* ?: T, n7 E
public static void rename(String fileName, String dir) {
|& `0 S" u+ wt( z( N我爱电脑技术论坛 String extendFile = "";
9 Q5 l* F* z6 z4 K! o( g% Awww.520diannao.com if (isJpg(fileName))我爱电脑技术论坛. WS% L2 O# S% Y. w: U; o
extendFile = ".jpg";
& g$ D# ?# ^o: q) p1 [; wwww.520diannao.com else if (isGif(fileName))
5 r1 T+ F8 a( ~! U我爱电脑技术论坛 extendFile = ".gif";我爱电脑技术论坛7 y, _$ C+ {/ n- G% X2 f
else if (isPng(fileName))打造最好的电脑自学交流论坛$ j5 M% @! c5 ^" a
extendFile = ".png";
5 V1 v$ E) k; @# x else
; u5 `5 {4 a/ m& n8 J1 h$ ~ extendFile = ".jpg";1 K/ f- e) I8 A0 X
Random random = new Random();
: i" ^0 r' @. [* q打造最好的电脑自学交流论坛 int add = random.nextInt(10000);打造最好的电脑自学交流论坛6 r& q, r9 }! Q2 t: }0 x5 s
String ret = fileName + add + extendFile;
/ [3 _2 q+ s3 Q6 SJ( |! v" [4 F打造最好的电脑自学交流论坛 while (isFileExist(ret, dir)) {打造最好的电脑自学交流论坛2 D4 |3 I2 Y) U; {6 ?
add = random.nextInt(10000);
6 \& z' K/ O: z' ^我爱电脑技术论坛 ret = fileName + add + extendFile;8 t+ O5 M" E3 l, [9 u) Q. i
}
# M4 g- N/ z2 q" |6 H1 [/ h% C File file = new File(dir + fileName);打造最好的电脑自学交流论坛# A9 @* e0 Q$ }8 n7 ~# U1 B
File reFile = new File(dir + ret);我爱电脑技术论坛# B4 i^% m" @( I4 g9 A
file.renameTo(reFile);
7 f/ S0 C" a; _9 Q- m }
1 {' n: u' A0 y' V/ T# CP- M! A) {4 M, f
public static boolean isGif(String file) {5 {# v( F! QN6 u9 h
if (file.toLowerCase().endsWith(".gif")) {! P" G# B! v% L
return true;
. V: V: i, f( g } else {
8 Z( C" _) G1 |打造最好的电脑自学交流论坛 return false;
7 c: h2 h, F! l打造最好的电脑自学交流论坛 }2 R. p, t/ F1 p, V( B
}( P7 i. v6 W8 Z& g

# i- `' J# v3 W& P( t0 N public static boolean isJpg(String file) {
1 Q6 `; G& o! b3 H3 z( V8 v) \ if (file.toLowerCase().endsWith(".jpg")) {打造最好的电脑自学交流论坛5 w* R6 Q/ X, I0 v) H; `
return true;g6 }. P5 z& k* z! P
} else {" h! Q5 B0 w" `5 E
return false;7 o' P# Z. |: \6 z`, ]
}
* y' s1 j# k! a8 u4 k8 ? }
: G* T0 a# N7 n
9 w8 _* A8 o' ?& J public static boolean isPng(String file) {
' h2 x" ^1 r. F* twww.520diannao.com if (file.toLowerCase().endsWith(".png")) {
8 e$ y3 s! ]/ W: h: G, |7 c) R. _h: P3 A6 Qwww.520diannao.com return true;
$ m8 B$ H( u! k* {0 [8 J打造最好的电脑自学交流论坛 } else {
; Pj/ S/ r. y return false;我爱电脑技术论坛1 P! C/ L1 n5 d/ {+ ?" J1 |0 ]
}我爱电脑技术论坛7 v7 v3 q0 c6 [/ k3 C
}& V: C0 T. h7 h/ _# J% R5 L$ ~, ^
}
分享到:
评论

相关推荐

    J2EE:struts2示例

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java EE应用程序框架,它在J2EE环境中被广泛用于构建动态Web应用。这个"J2EE: Struts2示例"旨在提供一个简单的入门教程,帮助初学者理解Struts2的核心概念...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发

    《轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发》是一本专注于现代Java企业级应用程序开发的书籍,主要聚焦于轻量级框架的使用,特别是Struts、Spring和Hibernate这三大支柱。这些框架在Java世界中...

    开发者突击:Java Web主流框架整合开发:J2EE+Struts+Hibernate+Spring 部分例子源代码 及数据库

    在"开发者突击:Java Web主流框架整合开发:J2EE+Struts+Hibernate+Spring 部分例子源代码及数据库"这个资料中,开发者可以学习到如何将这四个组件整合在一起,构建出高效稳定的Web应用。Struts2Test很可能是一个...

    Hibernate+Struts的J2EE应用开发2

    ### Hibernate与Struts在J2EE中的应用 #### 一、引言 随着企业级应用需求的日益增长,Java作为一种广泛使用的编程语言,在构建大型、复杂的企业应用方面展现了其强大的能力。Java 2 Platform, Enterprise Edition...

    J2EE小例子

    在这个例子中,Hibernate用于处理数据库交互,如用户信息的增删改查和验证码的存储。 **随机验证码**:为了增加安全性,该论坛系统提供了随机验证码功能。验证码是一种防止恶意自动化的手段,通常在用户登录时生成...

    Struts Struts1例子Struts注意事项

    而DispatchAction则是一种特殊的Action,它可以处理多个请求,提高了代码的复用性。 接下来,我们通过一个简单的例子来了解Struts1的应用。假设我们要创建一个用户登录的功能。首先,创建一个名为LoginForm的...

    J2EE的框架搭建 Struts框架的搭建

    在这个例子中,你需要创建`HelloWorldAction`类并实现`execute()`方法。 5. **使用JSTL标签**:JSTL(JavaServer Pages Standard Tag Library)提供了一套标准的标签库,可以简化JSP页面的开发。在JSP页面中,你...

    利用MyEclipse构建Struts+Hibernate+Spring的J2EE系统经典例子

    ### 利用MyEclipse构建Struts+Hibernate+Spring的J2EE系统经典例子 #### 系统背景与概述 本案例旨在通过一个简单的用户注册系统来演示如何使用MyEclipse集成开发环境(IDE)搭建基于Struts、Hibernate以及Spring...

    简单的struts2小例子 代码

    7. **.doc文档**:随压缩包提供的.doc文档详细解释了每个步骤,包括如何配置struts.xml文件,如何创建Action类,如何编写JSP页面,以及如何进行测试和运行。 8. **拦截器(Interceptors)**:Struts2的一个强大特性...

    轻量级Java+EE企业应用实战:Struts+2+Spring+Hibernate1到7章源代码

    《轻量级Java EE企业应用实战:Struts 2 + Spring + Hibernate》是李刚老师的经典著作,旨在...通过逐个分析和运行这些例子,读者将能更好地理解Struts 2的MVC设计模式、Spring的IoC和AOP、以及Hibernate的ORM能力。

    初学Struts的例子

    Tiles定义了页面模板,可以将多个组件组合成一个完整的页面。 5. **国际化与本地化**:Struts支持多语言,通过资源文件(如`messages.properties`)管理不同语言的文本,根据用户设置动态切换。 6. **异常处理**:...

    J2EE项目源码(企业内部源码)

    它包含了多个组件和服务,如Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,这些组件共同构成了企业级应用的基础架构。 Spring框架是J2EE开发中的核心组件,以其依赖注入(Dependency...

    给予J2EE的图书管理系统

    这个例子可能涵盖了Action类、JSP页面、配置文件(struts.xml)、以及可能的DAO和服务接口。通过学习这个例子,开发者可以更好地理解如何在实际项目中运用Struts2框架来构建图书管理系统。 总之,"给予J2EE的图书...

    struts 整合spring 例子,测试通过

    Struts2 和 Spring 整合是Java开发中常见的实践,主要目的是为了利用Spring的强大功能,如依赖注入(DI)和面向切面编程(AOP...这种整合方式在很多大型J2EE项目中被广泛应用,因为它提高了代码的可重用性和可测试性。

    struts2初学例子

    在这个例子中,我们将深入探讨Struts2的核心概念和关键组件。 1. **Struts2框架概述** Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,提供了更灵活的架构和更多的插件支持。它基于拦截器模型,提供...

    Spring与Hibernate和struts的小例子

    这个例子提供了一个基础的模板,你可以根据实际需求扩展和重写,比如添加更多的业务逻辑、优化数据访问、增强安全性或者改善用户体验。这样的实践有助于加深对J2EE框架的理解,提高开发效率。通过学习和运用这些框架...

    struts1.3.0

    Struts1.3.0是该框架的一个版本,主要适用于J2EE环境,用于构建高效、可扩展的Web应用。这个版本包括了1.3.10的更新,提供了工具包、源代码、文档和应用程序示例。 1. **Struts框架的核心概念** - **ActionServlet...

    J2EE中Struct的简单使用

    在房屋出租系统中,可以创建多个JSP页面,如发布房源的表单页面、查询结果的展示页面等。使用Struts标签库(Struts Tags)可以简化页面的编写,如&lt;s:form&gt;、&lt;s:textfield&gt;等,它们与ActionForm对象字段关联,自动...

    Struts2使用FlashFileUpload.swf实现批量文件上传

    最近想在Struts2中实现批量上传(使用html的file标签时,一次只能选一个文件,我是想一下可以选多个文件),结果找了半天,大都是swf+ajax的,用起来太复杂了,代码也很繁多,实在没耐心了。 就想起FlashFileUpload...

Global site tag (gtag.js) - Google Analytics