Flex文件上传

FileFilter

FileFilter类用于指示在调用 FileReference.browse() 方法、FileReferenceList.browse() 方法或调用 FileFileReference 或 FileReferenceList 对象的 browse 方法时显示的文件浏览对话框中显示用户系统上的哪些文件。

FileFilter 实例作为可选 typeFilter 参数的值传递给该方法:

如果使用 FileFilter 实例,则会滤除 FileFilter 实例中未指定的扩展名和文件类型,即用户无法选择这些类型;

如果未向方法传递任何 FileFilter 对象,则对话框中将显示所有文件。

 

可以采用以下两种方式之一使用 FileFilter 实例:

  • 仅包含文件扩展名的描述
  • 包含文件扩展名和Macintosh 文件类型的描述

这两种格式不能在一个 browse 方法调用中互换。必须使用其中一种格式。

 

可以向 browse 方法传递一个或多个 FileFilter 实例,如下所示:

 var imagesFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png");

 var docFilter:FileFilter = new FileFilter("Documents", "*.pdf;*.doc;*.txt");

 var myFileReference:FileReference = new FileReference();

 myFileReference.browse([imagesFilter, docFilter]);

 

或者在 AIR 应用程序中:

 var imagesFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png");

 var docFilter:FileFilter = new FileFilter("Documents", "*.pdf;*.doc;*.txt");

 var myFile:File = new File();

 myFile.browseForOpen("Open", [imagesFilter, docFilter]);

FileReference

browse() 方法打开一个操作系统对话框,提示用户选择要上载的文件。FileReference.browse() 方法允许用户选择一个文件;FileReferenceList.browse() 方法允许用户选择多个文件。

属性:

data : ByteArray     [只读成功调用 load() 方法之后代表所加载文件中的数据的 ByteArray 对象。

creationDate : Date   [只读本地磁盘上文件的创建日期。

creator : String      [只读文件的 Macintosh 创建者类型,此类型仅用于 Mac OS X 之前的 Mac OS 版本中。

extension : String    [只读文件扩展名。

modificationDate : Date   [只读本地磁盘上文件的上一次修改日期。

name : String        [只读本地磁盘上的文件的名称。

size : Number        [只读本地磁盘上文件的大小(以字节为单位)。

type : String         [只读文件类型。

 

方法:

FileReference()创建新的 FileReference 对象。

browse(typeFilter:Array = null):Boolean显示一个文件浏览对话框,让用户选择要上载的文件。  

load():void开始加载用户选择的本地文件。

cancel():void取消正在对该 FileReference 对象执行的任何上载或下载操作。 

download(request:URLRequest, defaultFileName:String = null):void打开对话框,以允许用户从远程服务器下载文件。  

save(data:*, defaultFileName:String = null):void打开一个对话框,允许用户将文件保存到本地文件系统。  

upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void开始将文件上载到远程服务器。

 

事件:

select:当用户从文件浏览对话框选择要上载或下载的文件时调度。

complete:当下载操作完成或上载操作生成 HTTP 状态代码 200 时调度。

cancel:当用户通过文件浏览对话框取消文件上载或下载时调度。  

ioError:当上载或下载失败时调度。

httpResponseStatus:在 upload() 或 uploadUnencoded() 方法调用尝试通过 HTTP 访问数据,并且 Adobe AIR 可以检测并返回请求的状态代码时调度。

httpStatus:当上载失败并且存在可用来描述失败的 HTTP 状态代码时调度。

open:当上载或下载操作开始时调度。

progress:在文件上载或下载操作期间定期调度。

securityError:当对 FileReference.upload() 或 FileReference.download() 方法的调用尝试将文件上载到调用方安全沙箱外部的服务器,或是从调用方安全沙箱外部的服务器上下载文件时进行调度。

uploadCompleteData:成功上载并从服务器接收数据之后调度。

FileUploadServlet.class package test; import java.io.File; import java.io.IOException; 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 String uploadPath = "G://upload/"; // 限制文件的上传大小 private int maxPostSize = 100 * 1024 * 1024; public FileUploadServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 得到用户需要保存的服装的id //String dressId = request.getParameter("dressID"); //System.out.println(dressId); // 保存文件到服务器中 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, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void init() throws ServletException { // Put your code here } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值