<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:TextInput x="33" y="39" width="250" id="txtFile"/> <mx:Button x="291" y="39" label="选择" width="65" click="openDaig()"/> <mx:Button x="364" y="39" label="上传文件" click="upLoad()"/> <mx:List x="33" y="112" id="LSfiles" itemClick="chooseFile(event)" width="200" backgroundColor="#EFFCD2" height="200"> </mx:List> <mx:Button x="239" y="193" label="下载文件" width="105" click="downFile()"/> <mx:ProgressBar x="33" y="69" width="384" labelPlacement="center" id="pro"/> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.events.ListEvent; import mx.controls.Alert; private var file:FileReference=new FileReference();//上传用 private var fe:FileReference=new FileReference();//下载用 private var filter:FileFilter=new FileFilter("*.jpg;*.gif","*.jpg;*.gif"); //打开文件对话框 private function openDaig():void{ file.browse([filter]); file.addEventListener(Event.SELECT,selectHandle); file.addEventListener(ProgressEvent.PROGRESS,proHandle); } private function selectHandle(event:Event):void{ var f:FileReference=FileReference(event.target); if(f.size>10*1024*1024){ Alert.show("文件太大,请确保文件在10M以内的"); }else{ txtFile.text=f.name; } } private var arr:ArrayCollection=new ArrayCollection(); //文件上传 private function upLoad():void{ var url:URLRequest=new URLRequest("http://localhost:8080/TestList/UploadServlet"); if(isExist(arr,file.name)){ Alert.show("file is exists"); }else{ arr.addItem(file.name); } this.LSfiles.dataProvider=arr; file.upload(url); //Alert.show("Success"); } //判断文件是否存在 private function isExist(arr:ArrayCollection,fileName:String):Boolean{ var flag:Boolean; for(var i:int=0;i<arr.length;i++){ if(arr.getItemAt(i)==fileName) flag=true; else flag=false; } return flag; } private function proHandle(event:ProgressEvent):void{ pro.setProgress(event.bytesLoaded,event.bytesTotal); pro.label="共"+event.bytesTotal+"字节--上传进度:"+int(event.bytesLoaded/event.bytesTotal*100)+"%" } //获得文件列表选择的文件 private var list:String; private function chooseFile(event:ListEvent):void{ list=List(event.target).selectedItem.toString(); } private function downFile():void{ fe=new FileReference(); var url:URLRequest=new URLRequest("http://localhost:8080/TestList/upload/"+list); fe.download(url); } ]]> </mx:Script> </mx:Application> servlet(dopost)代码如下 request.setCharacterEncoding("UTF-8");//解决中文问题 String path="/upload/"; String realPath=this.getServletConfig().getServletContext().getRealPath("/"); DiskFileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload sfu=new ServletFileUpload(factory); sfu.setFileSizeMax(10*1024*1024); try { List items = sfu.parseRequest(request); Iterator itr = items.iterator(); File file=null; while(itr.hasNext()){ FileItem item=(FileItem) itr.next(); if(!item.isFormField()){ file=new File(realPath+path+item.getName()); item.write(file); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }