`
ynp
  • 浏览: 438414 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex4多文件上传示例

阅读更多
---》Flex
<?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" fontSize="12" creationComplete="init()">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>  
		<![CDATA[ 
			import flash.events.*;
			
			import mx.collections.ArrayCollection;
			import mx.collections.ArrayList;
			import mx.controls.Alert;
			import mx.core.FlexGlobals;
			
			private var files : FileReferenceList;
			[Bindable]
			private var fileArray : ArrayList;
			
			private var serverUrl : String;
			private var userId : String;
			private var allowTypes : XML;
			
			private var xlsFilter:FileFilter = new FileFilter("定值单", "*.xls;*.xlsx");  
			private var setFileReference:FileReferenceList = new FileReferenceList();
			private var request:URLRequest=new URLRequest("http://localhost:8080/fileTest/upload/servlet/FileUploadServlet");
			[Bindable]
			private var resultArr:ArrayCollection = new ArrayCollection();
			
			private function init() : void {
				Security.allowDomain("*");
				setFileReference.addEventListener(Event.SELECT, onSelect);
			}
			
			private function upload() : void {
				
				setFileReference.browse([xlsFilter]); 
			}    
			
			private function onSelect(e:Event) : void {
				fileArray = new ArrayList(setFileReference.fileList);
				for(var i:int = 0; i < fileArray.length; i++) {
					var file:FileReference = fileArray.source[i] as FileReference;
					file.addEventListener(Event.COMPLETE,onComplete); 
					file.upload(request);
				}
			}
			
			private function onComplete(event:Event):void{
//				Alert.show((event.target as FileReference).name+"上传完成!"); 
				var obj:Object = new Object();				
				obj.result = (event.target as FileReference).name+"上传完成!";
				resultArr.addItem(obj);
			}  
			
		]]>  
	</fx:Script>  
	
	<s:VGroup>
		<s:Button label="上传文件" click="upload();" />
		<s:List id="list" dataProvider="{resultArr}" labelField="result" width="250"/>
	</s:VGroup>
</s:Application>

---》Servlet
需要commons-fileupload.jar  commons-io.jar
package servlet;
import java.io.File;
import java.io.IOException;
import java.util.Date;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
  
 public class FileUploadServlet extends HttpServlet { 
     // 定义文件的上传路径 
     private String uploadPath = "c://"; 
     // 限制文件的上传大小 
     private static final long maxFileSize = 104857600;
  
    
     protected void processRequest(HttpServletRequest request, 
             HttpServletResponse response) throws ServletException, IOException { 
         response.setContentType("text/html; charset=UTF-8");
        Date date = new Date();
        try {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(4096);
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setSizeMax(maxFileSize);
            upload.setHeaderEncoding("UTF-8");
            List fileItems = upload.parseRequest(request);
            Iterator iter = fileItems.iterator();
            // 依次处理每一个文件:
            String dictId = request.getParameter("dictId");
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (!item.isFormField()) {
                    String fileName = item.getName();
                    long fileSize = item.getSize();
                    if (fileName != null && fileName.trim().length() > 0 && fileSize < maxFileSize) {
                        // 取得上传文件后缀名
//                        int index=fileName.lastIndexOf(".");
//                        String docType = fileName.substring(index);
//                        String docName=fileName.substring(0,index);
                        File dir=new File(getServletContext().getRealPath("upload/template/"));
                        if(!dir.exists()){
                            dir.mkdirs();
                        }
                        String filePath = "upload/template/" + fileName;
//                        String filePath = "upload/template/" + date.getTime() + docType;
                        File uploadFile = new File(getServletContext().getRealPath(filePath));
                        item.write(uploadFile);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
     } 
  
     protected void doGet(HttpServletRequest request, 
             HttpServletResponse response) throws ServletException, IOException { 
         this.doPost(request, response); 
     } 
  
     protected void doPost(HttpServletRequest request, 
             HttpServletResponse response) throws ServletException, IOException { 
         processRequest(request, response); 
     } 
  
}


---》参考
http://blog.csdn.net/huangssssx/article/details/5785801#
http://javacrazyer.iteye.com/blog/707693
分享到:
评论

相关推荐

    Flex多文件上传+md5验证文件是否上传

    2. **Flex文件上传**:Flex应用程序通常使用HTTPService或WebService组件与服务器进行通信。在文件上传过程中,我们可以将FileReference对象的data属性绑定到HTTPService的requestContent,然后调用send方法发起POST...

    flex 多文件上传

    在提供的链接中,博主可能详细讨论了如何在Flex项目中实现多文件上传的过程,包括代码示例和可能遇到的问题。遗憾的是,由于没有具体的博客内容,我们无法深入探讨博主的具体实现方式。不过,可以推测博主可能分享了...

    flex4 remoteobject 多文件上传的例子

    在这个"flex4 remoteobject 多文件上传的例子"中,我们将重点探讨如何使用RemoteObject组件来实现多文件的上传,并且在上传过程中显示进度信息。 首先,我们要理解RemoteObject的工作原理。RemoteObject通过HTTP、...

    使用FLEX进行多文件上传和自定义上传信息.zip_flex_文件上传

    - Flex文件上传受到浏览器和Flash Player的安全限制,例如只能上传来自同一源的文件,以及文件大小限制等。开发者需要注意这些限制,并提供适当的错误处理机制。 6. **服务器端配合**: - Flex负责客户端的文件...

    flex+java文件上传完整实例

    本示例“flex+java文件上传完整实例”提供了一个完善的解决方案,它结合了Adobe Flex前端技术和Java后端技术,实现了用户友好的文件上传功能。Flex是一种开源的RIA(富互联网应用)开发框架,而Java则提供了强大的...

    FLEX上传文件,flex upload

    在标题“FLEX上传文件,flex upload”和描述“flex上传文件的例子,支持多文件上传。”中,我们关注的核心知识点是Flex中的文件上传功能。 文件上传是Web应用中的常见需求,特别是在处理用户提交的多媒体内容时。在...

    flex文件上传下载

    在 Flex 开发中,文件上传和下载是常见的需求,尤其对于需要处理大量用户上传内容的应用来说,这是一项关键功能。Flex 提供了便捷的方式来进行文件的上传和下载操作,同时可以有效利用服务器资源,提高服务器性能。...

    Flex 上传文件控件 (带java服务端)

    本项目提供了一个完整的Flex文件上传控件,且集成了Java服务端处理,允许用户上传文件到服务器,并能进行多文件或单文件选择,以及设置上传文件大小限制,同时展示上传进度条,为用户提供友好的交互体验。...

    Flex 向 java服务器 上传文件

    在本示例中,我们将讨论如何使用Flex客户端实现文件上传功能,并将其发送到Java服务器。 首先,我们需要了解Flex中的FileReference类。这个类是Flash Player API的一部分,允许用户从本地文件系统选择文件并进行...

    Flex 多文件上传组件

    【Flex 多文件上传组件】是一种在Flex应用中实现用户同时上传多个文件的功能模块。Flex是Adobe开发的一个开源框架,用于构建富互联网应用程序(RIA),它基于ActionScript编程语言和Flash Player运行时环境。在Flex...

    flex3+java文件上传

    在提供的压缩包“flex3+java文件上传”中,可能包含了一个完整的示例项目,包括Flex的源代码、Java的Servlet代码以及必要的配置文件。导入这个项目后,可以直接运行并测试文件上传功能,这对于学习和理解Flex3与Java...

    Flash多文件上传组件(Flex版)

    Flash多文件上传组件是Web开发中的一个重要工具,尤其在Flex技术框架下,它提供了一种高效、用户友好的方式来处理多个文件同时上传的需求。在Web应用中,传统的HTML表单仅支持单个文件的上传,这在处理大量或者批量...

    Flex+Java多文件上传

    标题中的“Flex+Java多文件上传”指的是使用Adobe Flex(一种富互联网应用程序开发框架)与Java技术相结合,实现用户在Web应用中上传多个文件的功能。这个功能通常涉及到前端的用户界面设计、后端的文件处理逻辑以及...

    flex在web端上传和下载文件前后台代码

    对于更复杂的应用场景,可能还需要考虑多文件上传、断点续传、文件预览、权限控制等额外功能。同时,随着Flash逐渐被淘汰,现代Web应用更多地转向HTML5的File API来实现类似功能,如使用`&lt;input type="file"&gt;`和`...

    flex + servlet 多文件上传

    本示例主要涉及了`Flex`和`Servlet`技术的结合,用于实现多文件上传的功能。`Flex`是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,而`Servlet`则是Java Web开发中的服务器端组件...

    Flex 多文件上传 项目源代码包

    在Flex中实现多文件上传,通常会涉及到以下几个关键知识点: 1. **FileReference类**:在Flex中,FileReference是处理文件上传的核心类。它提供了选择、读取、保存和上传本地文件的功能。通过监听FileReference对象...

    FLEX实现的一例多文件上传源码

    本示例主要关注的是FLEX在多文件上传功能的实现,这在许多Web应用中是一个常见的需求,例如图片分享、文档共享等场景。.NET则提供了后端的支持,处理来自FLEX前端的文件上传请求。 1. **FLEX**:FLEX是一种开源的、...

    flex文件上传系统

    Flex文件上传系统是一种基于Adobe Flex技术构建的前端文件上传解决方案。Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的开发框架,它基于ActionScript编程语言和MXML标记语言,能够创建高度交互、视觉...

    Flex实现的多文件上传实例

    而`basic`可能是一个基础示例或库,包含了实现多文件上传功能的关键代码片段。要深入学习和理解这个实例,你应该打开这些文件,查看它们的结构和实现细节。 总的来说,Flex的多文件上传涉及到客户端的事件处理、...

    flash上传文件,flex上传,无刷新上传,php上传,含源码

    需要注意的是,随着HTML5的普及,现在更多地使用HTML5的File API和FormData对象来实现无插件的文件上传,但Flash和Flex的解决方案在某些场景下仍然有其价值,特别是在对浏览器兼容性有较高要求的项目中。

Global site tag (gtag.js) - Google Analytics