| 
 
           ? 
 在网上找的一个Flex文件上传代码,记录下来,以后用到的时候可以马上能用: 1. Flex 前端代码  
  
  [java] 
   view plain 
  copy 
  print 
  ? 
  
<?xml?version="1.0"?encoding="utf-8"?>??
<s:Application?xmlns:fx="http://ns.adobe.com/mxml/2009"??
??????xmlns:s="library://ns.adobe.com/flex/spark"??
??????xmlns:mx="library://ns.adobe.com/flex/mx"?minWidth="955"?minHeight="600"??
??????creationComplete="init();">??
?<s:layout>????<s:BasicLayout/>???</s:layout>???<fx:Declarations>????<!--?将非可视元素(例如服务、值对象)放在此处?-->???</fx:Declarations>???<fx:Script>????<![CDATA[??
??import?flash.net.FileReference;??
??import?mx.controls.Alert;??
??import?mx.events.CloseEvent;??
??import?flash.events.*;??
????
??private?var?file:?FileReference;??
????
??private?function?init():?void{??
??Security.allowDomain("*");??
??file?=?new?FileReference();??
??file.addEventListener(ProgressEvent.PROGRESS,?onProgress);????file.addEventListener(Event.SELECT,?onSelect);????}??????
??private?function?upload():?void{??
??????file.browse();????}??
??private?function?onSelect(e:?Event):?void{??
??Alert.show("上传?"?+?file.name?+?"?(共?"+Math.round(file.size)+"?字节)?",??
??"确认上传",??
??Alert.YES|Alert.NO,??
??null,??
??proceedWithUpload);????}??????
??private?function?onProgress(e:?ProgressEvent):?void{??
??lbProgress.text?=?"?已上传?"?+?e.bytesLoaded??
??+?"?字节,共?"?+?e.bytesTotal?+?"?字节";??
??var?proc:?uint?=?e.bytesLoaded?/?e.bytesTotal?*?100;??
??bar.setProgress(proc,?100);??
??bar.label=?"当前进度:?"?+?"?"?+?proc?+?"%";??
??}??????
??private?function?proceedWithUpload(e:?CloseEvent):?void{??
??if?(e.detail?==?Alert.YES){??
??var?request:?URLRequest?=?new?URLRequest("http://localhost:8080/firstFlex/fileUploadServlet");??
??try?{??
??file.upload(request);??
??}?catch?(error:Error)?{??
?????trace("上传失败");??
??}????????}????}????]]>???</fx:Script>?????
?<mx:Canvas?width="100%"?height="100%">??
??<mx:VBox?width="100%"?horizontalAlign="center">??
???<mx:Label?id="lbProgress"?text="上传"/>??
???<mx:ProgressBar?id="bar"?labelPlacement="bottom"?themeColor="#F20D7A"??
???????minimum="0"?visible="true"?maximum="100"?label="当前进度:?0%"???
???????direction="right"?mode="manual"?width="200"/>??
???<mx:Button?label="上传文件"?click="upload();"/>?????????????
??</mx:VBox>???</mx:Canvas>??</s:Application>?? 2. java Servlet端代码: ?  
  
  [java] 
   view plain 
  copy 
  print 
  ? 
  
package?test;????
import?java.io.File;??
import?java.io.IOException;??
import?java.io.PrintWriter;??
import?java.util.Iterator;??
import?java.util.List;??
??
import?javax.servlet.ServletException;??
import?javax.servlet.http.HttpServlet;??
import?javax.servlet.http.HttpServletRequest;??
import?javax.servlet.http.HttpServletResponse;??
??
import?org.apache.commons.fileupload.FileItem;??
import?org.apache.commons.fileupload.FileUploadException;??
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;??
import?org.apache.commons.fileupload.servlet.ServletFileUpload;??
??
public?class?FileUploadServlet?extends?HttpServlet?{??
??
?private?static?final?long?serialVersionUID?=?1L;??
??
?private?String?uploadPath?=?"D:/Tomcat?6.0/webapps/firstFlex/bin-debug/";??
????
?private?int?maxPostSize?=?100?*?1024?*?1024;??
??
?public?FileUploadServlet()?{??
??super();??
?}????
?public?void?destroy()?{??
??super.destroy();??
?}????
??public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)??
???throws?ServletException,?IOException?{??
?????
??
??
???
????
??request.setCharacterEncoding("UTF-8");??
??response.setContentType("text/html;?charset=UTF-8");??
??DiskFileItemFactory?factory?=?new?DiskFileItemFactory();??
??factory.setSizeThreshold(4096);??
??ServletFileUpload?upload?=?new?ServletFileUpload(factory);??
??upload.setSizeMax(maxPostSize);??
??try??
??{?????List?fileItems?=?upload.parseRequest(request);?????Iterator?iter?=?fileItems.iterator();??
???while?(iter.hasNext())??
???{??????FileItem?item?=?(FileItem)?iter.next();??
????if?(!item.isFormField())??
????{???????String?name?=?item.getName();???????System.out.println(name);??
?????try??
?????{??
??????item.write(new?File(uploadPath?+?name));??
?????}??
?????catch?(Exception?e)??
?????{????????e.printStackTrace();???????}??????}?????}????}??
??catch?(FileUploadException?e)??
??{?????e.printStackTrace();????}???}????
??public?void?doPost(HttpServletRequest?request,?IOException?{??
??doGet(request,?response);???}????
?public?void?init()?throws?ServletException?{??
????
?}????}????
3.下面是web.xml文件Servlet的配置部分,把它加入到web.xml中即可。??
????<servlet>????????????<servlet-name>fileUploadServlet</servlet-name>????
????????<servlet-class>test.FileUploadServlet</servlet-class>????
????</servlet>????????????<servlet-mapping>????????????<servlet-name>fileUploadServlet</servlet-name>????????????<url-pattern>/fileUploadServlet</url-pattern>????????</servlet-mapping>????
 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |