Flex简单文件上传
2009-03-24 14:30
246 查看
FileReferenceExample.as:
package oreilly.cookbook{
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
import mx.controls.Button;
import mx.containers.Canvas;
public class FileReferenceExample extends Canvas {
private var uploadURL:URLRequest;
private var file:FileReference;
private var button:Button;
public function FileReferenceExample() {
uploadURL = new URLRequest();
uploadURL.url = "http://localhost:3003/UploadTest.aspx";
file = new FileReference();
configureListeners(file);
}
protected function btnUpload_Click(event:MouseEvent):void{
file.browse(getTypes());
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function getTypes():Array {
var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return allTypes;
}
private function getImageTypeFilter():FileFilter {
return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
}
private function getTextTypeFilter():FileFilter {
return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
}
private function cancelHandler(event:Event):void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
file.upload(uploadURL);
}
}
}
FileReferenceExample.mxml:
<?xml version="1.0" encoding="utf-8"?>
<cookbook:FileReferenceExample xmlns:cookbook="oreilly.cookbook.*" xmlns:mx="http://www.adobe.com/2006/mxml" width="347" height="208">
<mx:Button id=”btnUpload” label="Button" x="10" y="10" click="btnUpload_Click(event);"/>
</cookbook:FileReferenceExample>
这种codebehind模式在as脚本里是无法操纵mxml界面元素的.
需要在as脚本里操纵界面元素,不要使用这种继承关系,直接在mxml里引用as脚本<mx:Script source="FileReferenceExample_cb.as"/>
package oreilly.cookbook{
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
import mx.controls.Button;
import mx.containers.Canvas;
public class FileReferenceExample extends Canvas {
private var uploadURL:URLRequest;
private var file:FileReference;
private var button:Button;
public function FileReferenceExample() {
uploadURL = new URLRequest();
uploadURL.url = "http://localhost:3003/UploadTest.aspx";
file = new FileReference();
configureListeners(file);
}
protected function btnUpload_Click(event:MouseEvent):void{
file.browse(getTypes());
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function getTypes():Array {
var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return allTypes;
}
private function getImageTypeFilter():FileFilter {
return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
}
private function getTextTypeFilter():FileFilter {
return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
}
private function cancelHandler(event:Event):void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
file.upload(uploadURL);
}
}
}
FileReferenceExample.mxml:
<?xml version="1.0" encoding="utf-8"?>
<cookbook:FileReferenceExample xmlns:cookbook="oreilly.cookbook.*" xmlns:mx="http://www.adobe.com/2006/mxml" width="347" height="208">
<mx:Button id=”btnUpload” label="Button" x="10" y="10" click="btnUpload_Click(event);"/>
</cookbook:FileReferenceExample>
这种codebehind模式在as脚本里是无法操纵mxml界面元素的.
需要在as脚本里操纵界面元素,不要使用这种继承关系,直接在mxml里引用as脚本<mx:Script source="FileReferenceExample_cb.as"/>
相关文章推荐
- Flex多文件上传简单示例(服务端.net)
- 简单的文件上传到Servlet 采用的httpclient
- 使用简单的wcf文件实现上传,下载文件到服务器
- 简单的文件上传方法
- Java上传文件简单小项目
- .NET上传文件前所未有的简单
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- leravel5.2的简单文件上传
- SpringMVC框架简单实现上传Excel文件,并将Excel中的数据导入mySQL数据库
- html5 实现客户端验证上传文件的大小(简单实例)
- struts2简单的文件上传实现
- ios git简单上传代码文件
- 借助Servlet3.0实现更简单的文件上传
- 完整的Flex多文件上传实例
- 上传文件的jar包 + 简单的可执行 jar 文件包制作
- Struts2上传与下载文件 简单例子
- Asp.Net文件上传之简单文件上传
- flex使用filereference+httphandler实现文件上传/下载(转)
- 简单的构建文件上传服务器的代码
- Flex中文件的上传下载