Flex multi-file upload tool (for your own use)
Java class
Package COM. shine. framework. flexupload; </P> <p> Import Java. io. file; <br/> Import Java. io. ioexception; <br/> Import Java. io. printwriter; <br/> Import Java. util. iterator; <br/> Import Java. util. list; </P> <p> Import javax. servlet. servletexception; <br/> Import javax. servlet. HTTP. httpservlet; <br/> Import javax. servlet. HTTP. httpservletrequest; <br/> Import javax. servlet. HTTP. httpservletresponse; </P> <p> Import org. Apache. commons. fileupload. fileitem; <br/> Import Org. apache. commons. fileupload. fileuploadexception; <br/> Import Org. apache. commons. fileupload. disk. diskfileitemfactory; <br/> Import Org. apache. commons. fileupload. servlet. servletfileupload; </P> <p> Import COM. shine. framework. config. frameworkconfigfactory; </P> <p> public class fileuploaded extends httpservlet {</P> <p> // defines the File Upload path <br/> private string upload Path = frameworkconfigfactory. getconfig (). getsyspath () <br/> + "// upload //"; </P> <p> // restrict the file upload size </P> <p> private int maxpostsize = 100*1024*1024; </P> <p> Public fileuploaded () {<br/> super (); <br/>}</P> <p> Public void destroy () {<br/> super. destroy (); <br/>}</P> <p> Public void processrequest (httpservletrequest request, <br/> httpservletresponse response) throws servletexception, ioexception {<br/> syst Em. Out. println ("access! "); <Br/> response. setcontenttype ("text/html; charset = UTF-8"); <br/> printwriter out = response. getwriter (); </P> <p> // save the file to the server </P> <p> diskfileitemfactory factory = new diskfileitemfactory (); <br/> factory. setsizethreshold (4096); <br/> servletfileupload upload = new servletfileupload (factory); <br/> upload. setsizemax (maxpostsize); <br/> try {<br/> List fileitems = upload. parserequest (request); <br/> iterato R iter = fileitems. iterator (); <br/> while (ITER. hasnext () {<br/> fileitem item = (fileitem) ITER. next (); <br/> If (! Item. isformfield () {<br/> string name = new string (item. getname (). getbytes ("GBK"), "UTF-8"); <br/> system. out. println (name); <br/> try {<br/> item. write (new file (uploadpath + name); <br/> // SaveFile S = new SaveFile (); </P> <p> // s. saveFile (name); </P> <p >}catch (exception e) {<br/> E. printstacktrace (); <br/>}< br/>}catch (fileuploadexception e) {<br/> E. printstacktrace (); <br/> system. out. println (E. getmessage () + "end "); <br/>}</P> <p> // <Editor-fold defaultstate = "Collapsed" DESC = "httpservlet methods. click on <br/> // The + sign on the left to edit the code. "> </P> <p> Public void doget (httpservletrequest request, <br/> httpservletresponse response) throws servletexception, ioexception {<br/> processrequest (request, response ); <br/>}</P> <p> Public void dopost (httpservletrequest request, <br/> httpservletresponse response) throws servletexception, ioexception {<br/> processrequest (request, response); <br/>}</P> <p> Public String getservletinfo () {<br/> return "Short Description "; <br/>}< br/> // </Editor-fold> </P> <p >}< br/>
Flex class
<? XML version = "1.0" encoding = "UTF-8"?> <Br/> <! -- Viruscodecn@gmail.com --> <br/> <basesimplecanvas xmlns = "com. shine. framework. view. * "<br/> xmlns: MX =" http://www.adobe.com/2006/mxml "<br/> creationcomplete =" {This. completeloading ()} "> <br/> <mx: SCRIPT> <br/> <! -- [CDATA [<br/> Import MX. controls. progressbar; <br/> Import MX. controls. label; <br/> Import MX. containers. hbox; <br/> Import MX. events. closeevent; <br/> Import MX. collections. arraycollection; <br/> Import MX. controls. alert; </P> <p> Public var filearray: fileupdatautil = new fileupdatautil; <br/> private var F: filereference; <br/> private var N: Int = 0; </P> <p> Public var TargetUrl: String = "/salesystem/fileuploaded"; <Br/> // format :*. JPG ;*. JPEG ;*. PNG <br/> Public var filetype: String = "*. * "; </P> <p> Public var filecount: Int = 999; </P> <p> private function browsefile (): void <br/>{< br/> If (filearray. length <filecount) <br/>{< br/> var file: filereference = new filereference (); <br/> file. addeventlistener (event. select, onselect); <br/> file. addeventlistener (progressevent. progress, onprogress); <br/> file. addeventlistener (event. CO Mplete, completehandle); </P> <p> var types: filefilter = new filefilter (filetype, filetype); <br/> var alltypes: array = new array (types ); <br/> file. browse (alltypes); <br/> file. browse (); <br/>}< br/> else <br/> {<br/> alert. show ("This upload limit is exceeded"); <br/>}</P> <p> private function cleanupload (): void <br/> {<br/> cvbox. removeallchildren (); <br/> filearray. removeall (); <br/>}</P> <p> private function onselect (E: Eve NT): void <br/>{< br/> f1_filereference(e.tar get); <br/> If (F. name. length <11) <br/>{< br/> alert. show ("add" + F. name + "(total" + math. round (F. size) + "bytes )? "," Confirm to add ", alert. yes | alert. no, null, addfileupload); <br/>}< br/> else <br/>{< br/> alert. show ("the Upload File name is too long. Please keep it within 7 characters... "); <br/>}</P> <p> private function addfileupload (E: closeevent ): void <br/>{< br/> var hbox: hbox = new hbox; <br/> hbox. width = cvbox. width; <br/> hbox. height = 40; <br/> cvbox. addchild (hbox); </P> <p> var label: Label = new label; <br/> label. TEXT = f. name; <br/> label. height = 40; <br/> label. width = 50; <br/> label. tooltip = f. name; <br/> hbox. addchild (Label); </P> <p> var progressbar: progressbar = new progressbar; <br/> progressbar. width = hbox. width-60; <br/> progressbar. height = 40; <br/> progressbar. mode = "Manual"; <br/> progressbar. setstyle ("themecolor", "0xf20d7a"); <br/> hbox. addchild (progressbar); </P> <p> var fileupdatamodel: fileupdatamodel = new fileupdatamodel; <br/> fileupdatamodel. file = f; <br/> fileupdatamodel. progressbar = progressbar; <br/> filearray. additem (fileupdatamodel); <br/>}</P> <p> private function proceedwithupload (): void <br/>{< br/> var request: URLRequest = new URLRequest (TargetUrl); <br/> filereference (filearray. getitemat (n) as fileupdatamodel ). file ). upload (request); <br/> tip. TEXT = "uploading:" + filereference (filearray. getitemat (n) as fileupdatamodel ). file ). name; <br/>}</P> <p> private function onprogress (E: progressevent): void <br/>{< br/> var proc: uint = E. bytesloaded/e. bytestotal * 100; <br/> progressbar (filearray. getitemat (n) as fileupdatamodel ). progressbar ). setprogress (Proc, 100); <br/> progressbar (filearray. getitemat (n) as fileupdatamodel ). progressbar ). label = "current progress:" + "" + proc + "%"; <br/>}</P> <p> private function completehandle (Event: Event ): void <br/>{< br/> N ++; <br/> If (n <filearray. length) <br/>{< br/> var request: URLRequest = new URLRequest (TargetUrl); <br/> filereference (filearray. getitemat (n) as fileupdatamodel ). file ). upload (request); <br/> tip. TEXT = "uploading:" + filereference (filearray. getitemat (n) as fileupdatamodel ). file ). name; <br/>}< br/> else <br/>{< br/> tip. TEXT = "All uploaded"; <br/> n = 0; <br/>}< br/>] --> <br/> </MX: SCRIPT> <br/> <mx: vbox id = "vbox" <br/> width = "100%" <br/> Height = "100%"> <br/> <mx: hbox> <br/> <mx: button id = "browsebutton" <br/> label = "" <br/> click = "browsefile () "/> <br/> <mx: button id =" uploadbutton "<br/> label =" Upload "<br/> click =" proceedwithupload () "/> <br/> <mx: button id =" cleanbutton "<br/> label =" clear records "<br/> click =" cleanupload () "/> <br/> <mx: vbox> <br/> <mx: label id = "tip" <br/> text = "Upload File" <br/> Height = "20"/> <br/> <mx: hrule width = "{This. width-40-browseButton.width-upLoadButton.width-cleanButton.width} "/> <br/> </MX: vbox> <br/> </MX: hbox> <br/> <mx: vbox id = "cvbox" <br/> width = "98%" <br/> Height = "98%"/> <br/> </MX: vbox> <br/> </basesimplecanvas> <br/>
Web. xml
<! -- For File Uploaded --> <br/> <servlet-Name> fileuploaded </servlet-Name> <br/> <servlet-class> COM. shine. framework. flexupload. fileuploaded </servlet-class> <br/> </servlet> </P> <p> <servlet-mapping> <br/> <servlet-Name> fileuploaded </Servlet -Name> <br/> <URL-pattern>/fileuploaded </url-pattern> <br/> </servlet-mapping>