package
{
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import fl.motion.MotionEvent;
import flash.utils.getTimer;
public class URLLoaderExample extends Sprite
{
private var uploadURL:URLRequest;
private var file:FileReference;
private var upfile:FileReference;
public function URLLoaderExample()
{
upBtn.addEventListener(MouseEvent.CLICK,Upload); //鼠标单击上传按钮执行Upload方法
downBtn.addEventListener(MouseEvent.CLICK,downSpeed); //鼠标单击下载按钮执行download方法
}
private var downloadURL:URLRequest;
private var fileName:String = "PDF2Word.zip";
//private var file:FileReference;
function downSpeed(me:MouseEvent)
{
var t=getTimer();
download();
trace(getTimer()-t);
}
function download() //下载
{
downloadURL = new URLRequest();
downloadURL.url = "http://file.foxitreader.cn/sprint/file/201605/PDF2Word.zip"; //下载链接
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
private function configureListeners(dispatcher:IEventDispatcher):void
{
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
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 cancelHandler(event:Event):void
{
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event):void
{
trace("completeHandler: " + 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=" + downloadURL.url);
}
private function Upload(me:MouseEvent) //上传
{
uploadURL = new URLRequest();
uploadURL.url = "http://localhost:8080/test/";
upfile = new FileReference();
upConfigureListeners(upfile);
upfile.browse(getTypes());
}
private function upConfigureListeners(dispatcher:IEventDispatcher):void
{
dispatcher.addEventListener(Event.CANCEL, upCancelHandler);
dispatcher.addEventListener(Event.COMPLETE, upCompleteHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, upIoErrorHandler);
dispatcher.addEventListener(Event.OPEN, upOpenHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, upProgressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, upSecurityErrorHandler);
dispatcher.addEventListener(Event.SELECT, upSelectHandler);
dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
}
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 upCancelHandler(event:Event):void
{
trace("upCancelHandler: " + event);
}
private function upCompleteHandler(event:Event):void
{
trace("upCompleteHandler: " + event);
}
private function uploadCompleteDataHandler(event:DataEvent):void
{
trace("uploadCompleteData: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void
{
trace("httpStatusHandler: " + event);
}
private function upIoErrorHandler(event:IOErrorEvent):void
{
trace("upIoErrorHandler: " + event);
}
private function upOpenHandler(event:Event):void
{
trace("upOpenHandler: " + event);
}
private function upProgressHandler(event:ProgressEvent):void
{
var file:FileReference = FileReference(event.target);
trace("upPorgressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function upSecurityErrorHandler(event:SecurityErrorEvent):void
{
trace("upSecurityErrorHandler: " + event);
}
private function upSelectHandler(event:Event):void
{
var file:FileReference = FileReference(event.target);
trace("upSelectHandler: name=" + file.name + " URL=" + uploadURL.url);
file.upload(uploadURL);
}
}
}