`

flex多文件上传

    博客分类:
  • flex
阅读更多

代码都是别人的

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="vertical" windowComplete="init()">
	
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
//			private var fileList:FileReferenceList;
//			private function init():void{
//				fileList=new FileReferenceList();
//				fileList.addEventListener(Event.SELECT,onSelect);
//				fileList.addEventListener(Event.CANCEL,onCancel);
//			}		
			[Bindable]
			private var files:Array;
			private var file:File;
			private function init():void{
				file=new File();
				file.addEventListener(FileListEvent.SELECT_MULTIPLE,onSelectMuti);
				
				
			}
			private function onSelectMuti(event:FileListEvent):void{
				this.files=event.files;
			}
			
			private function onSelect(event:Event):void{
				
			}
			private function onCancel(event:Event):void{
				
			}
			private function select():void{
				file.browseForOpenMultiple("选择上传文件");
			} 
			private function upLoad():void{
				for(var i:int=0;i<this.files.length;i++){
					var file:File=files[i];
					file.addEventListener(Event.COMPLETE,onComplete);
					file.upload(new URLRequest("http://localhost:8400/gdg/fileupLoad/FileUpLoad"));
				}
			}
			private function onComplete(event:Event):void{
				var file:File=event.target as File;
				mx.controls.Alert.show(file.nativePath+"上传成功");
			}
			private function onIOError():void{
				
			}
		]]>
	</mx:Script>
	<mx:VBox width="100%">
		
		
		<mx:HBox>
			<mx:Button label="选择" click="select()"/>
			<mx:Button label="上传" click="upLoad()"/>
		</mx:HBox>
		<mx:DataGrid dataProvider="{this.files}" width="100%">
			<mx:columns>
				<mx:DataGridColumn headerText="文件名">
				</mx:DataGridColumn>
				<mx:DataGridColumn headerText="图片">
					<mx:itemRenderer>
						<mx:Component>
							<mx:Image source="{data.nativePath}" width="100" height="100">
							</mx:Image>
						</mx:Component>
					</mx:itemRenderer>
				</mx:DataGridColumn>
				<mx:DataGridColumn headerText="上传进度">
					<mx:itemRenderer>
								FileUPLoad.test
					</mx:itemRenderer>
				</mx:DataGridColumn>
			</mx:columns>
		</mx:DataGrid>
	</mx:VBox>
	
</mx:WindowedApplication>

  FileUPLoad.test

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			import mx.controls.ProgressBar;
			private var _data:Object
			override public function set data(value:Object):void{
				this._data=value;
				File(this._data).addEventListener(ProgressEvent.PROGRESS,onPro);
				File(this._data).addEventListener(Event.COMPLETE,onCom);
			}
			override public function get data():Object{
				return this._data;
			}
			private function onCom(event:Event):void{
				hb.removeChild(bar);
				lbProgress.text="上传成功";
			}
			private function onPro(e:ProgressEvent):void{
				lbProgress.text = " 已上传 " + e.bytesLoaded
+ " 字节,共 " + e.bytesTotal + " 字节";
var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
bar.setProgress(proc, 100);
bar.label= "当前进度: " + " " + proc + "%";
			}
		]]>
	</mx:Script>
	<mx:HBox id="hb">
		<mx:ProgressBar minimum="0" maximum="100" id="bar">
			
		</mx:ProgressBar>
		<mx:Label id="lbProgress">
			
		</mx:Label>
	</mx:HBox>
	
</mx:Canvas>
 
package test;

import javax.servlet.http.HttpServlet;
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 = -1427340872248925684L;
	
	/**
	 *
	 * @author crystal
	 */


	    /**
	     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
	     * @param request servlet request
	     * @param response servlet response
	     */
	    // 定义文件的上传路径

	    private String uploadPath = "d:\\a\\";

	// 限制文件的上传大小

	    private int maxPostSize = 100 * 1024 * 1024;

	  

	    public void destroy() {
	        super.destroy();
	    }

	    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
	            throws ServletException, IOException {
	        System.out.println("Access !");
	        response.setContentType("text/html;charset=UTF-8");
	        PrintWriter out = response.getWriter();

	//保存文件到服务器中

	        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));
	                       // SaveFile s = new SaveFile();
	                        System.out.println("成功写入"+uploadPath+name);
	                       // s.saveFile(name);

	                    } catch (Exception e) {
	                        e.printStackTrace();
	                    }
	                }
	            }
	        } catch (FileUploadException e) {
	            e.printStackTrace();
	            System.out.println(e.getMessage() + "结束");
	        }
	    }

	    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

	    /**
	     * Handles the HTTP <code>GET</code> method.
	     * @param request servlet request
	     * @param response servlet response
	     */
	    protected void doGet(HttpServletRequest request, HttpServletResponse response)
	            throws ServletException, IOException {
	        processRequest(request, response);
	    }

	    /**
	     * Handles the HTTP <code>POST</code> method.
	     * @param request servlet request
	     * @param response servlet response
	     */
	    protected void doPost(HttpServletRequest request, HttpServletResponse response)
	            throws ServletException, IOException {
	        processRequest(request, response);
	    }

	    /**
	     * Returns a short description of the servlet.
	     */
	    public String getServletInfo() {
	        return "Short description";
	    }
	    // </editor-fold>

	

}
 
分享到:
评论

相关推荐

    Flex 多文件上传组件

    Flex多文件上传组件是一种在Adobe Flex环境中实现的高级功能,允许用户一次性选择并上传多个文件。这个组件在Web应用程序中非常实用,特别是在处理大量图片、文档或其他类型文件上传的场景下,大大提升了用户体验。 ...

    flex 多文件上传

    "flex 多文件上传"是指使用Adobe Flex框架实现的能够同时上传多个文件的功能。Flex是一款强大的RIA(富互联网应用)开发工具,它基于ActionScript编程语言和Flash Player运行时环境,提供丰富的用户界面组件和交互...

    Flex多文件上传

    Flex多文件上传是一种在Web应用中实现用户同时上传多个文件的技术。这个小demo是使用Adobe Flash Builder 4.0作为开发环境,结合Java Servlet后端处理来完成的。Flash Builder是一款强大的集成开发环境(IDE),专门...

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

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

    flex多文件上传控件(flex源码)

    在这个"flex多文件上传控件"中,我们可以看到它是Flex技术在文件上传场景中的应用,特别适合于需要批量或单个上传文件到服务器的Web应用。 该控件是通过Adobe Flash Builder 4进行开发的,Flash Builder是一个集成...

    Flex多文件上传源码

    在本场景中,"Flex多文件上传源码"是指一个使用Flex技术实现的能够处理多文件同时上传的功能模块。这个功能对于Web应用程序来说非常实用,尤其是在用户需要上传大量文件时。 首先,我们要理解Flex中的组件体系。...

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

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

    flex多文件上传 asp.net实例

    在多文件上传场景中,Flex可以提供用户友好的界面,允许用户选择并上传多个文件。 在Flex中,我们可以利用`FileReference`类来处理文件上传。`FileReference`类提供了选择、读取和上传本地文件的方法。当用户选择...

    FLEX多文件上传

    FLEX多文件传。带进度条的提示。

    flex实现多文件上传

    在Flex中实现多文件上传,通常涉及到ActionScript编程、组件使用以及与服务器端的交互。下面将详细介绍如何使用Flex来实现这个功能。 一、Flex中的文件选择组件 在Flex中,我们可以使用`FileReference`类来处理文件...

    Flex multiple file uploader (Flex多文件上传范例)

    在Web应用中,多文件上传功能通常用于让用户能够一次性选择并上传多个文件,提高用户交互体验。 首先,我们要理解Flex中的组件模型。Flex提供了丰富的组件库,如Button、TextInput、Canvas等,开发者可以使用这些...

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

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

    flex_java实现多文件上传_超全

    标题"flex_java实现多文件上传_超全"暗示我们将探讨如何使用Flex作为前端界面,与Java后台进行交互,以支持用户同时上传多个文件的功能。这通常涉及到前端的表单设计、文件选择控件、进度显示以及后台的数据处理和...

    Flex文件上传组件

    Flex文件上传组件是一种基于Adobe Flex技术的用户界面组件,用于在Web应用中实现文件上传功能。Flex是一个开源的RIA(富互联网应用)框架,它允许开发者创建交互性强、图形丰富的Web应用。在这个组件中,用户可以...

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

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

    flex文件上传下载,在线以pdf形式浏览文件

    综上所述,实现"flex文件上传下载,在线以pdf形式浏览文件"这一功能,需要综合运用前端开发、后端接口设计、文件处理和安全策略等多个领域的知识,为用户提供便捷、安全的文件管理体验。在实际开发过程中,还需要...

    Flex文件上传的组件

    综上所述,Flex文件上传组件涉及到了Flex组件设计、文件I/O操作、事件处理、HTTP通信、UI反馈等多个方面的知识,对于开发高质量的RIA应用至关重要。通过深入理解和熟练运用这些技术,开发者可以创建出高效、友好的...

Global site tag (gtag.js) - Google Analytics