package
{
import flash.display.MovieClip;
import fl.controls.ProgressBar;
import fl.controls.Button;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.net.URLRequest;
public class uploader extends MovieClip
{
private const UPLOAD_URL:String = "./upload.php";
private var fileRef:FileReference;
public function uploader()
{
init();
}
public function init():void
{
progress_label.text = "Select a file...";
browse_btn.addEventListener(MouseEvent.CLICK, startUpload);
cancel_btn.addEventListener(MouseEvent.CLICK, cancelUpload);
fileRef = new FileReference();
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.OPEN, openHandler);
fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
progress_bar.source = fileRef;
}
public function startUpload(evt:MouseEvent):void
{
fileRef.browse();
}
private function selectHandler(evt:Event):void
{
var request:URLRequest = new URLRequest(UPLOAD_URL);
fileRef.upload(request);
}
private function openHandler(event:Event):void
{
progress_label.text = "UPLOADING";
browse_btn.enabled = false;
cancel_btn.enabled = true;
}
private function progressHandler(evt:ProgressEvent):void
{
progress_label.text = "UPLOADING - " + Math.round((evt.bytesLoaded / evt.bytesTotal) * 100) + "%";
}
private function completeHandler(evt:Event):void
{
progress_label.text = "COMPLETE";
browse_btn.enabled = true;
cancel_btn.enabled = false;
}
private function cancelUpload(evt:MouseEvent):void
{
fileRef.cancel();
progress_label.text = "UPLOAD CANCELLED";
browse_btn.enabled = true;
cancel_btn.enabled = false;
}
}
}
|