<mx:Script>
    <![CDATA[
        private var fileRef:FileReference;

        private const FILE_UPLOAD_URL:String = "http://localhost:8080/upload.jsp";

        private function init():void {
            fileRef = new FileReference();
            fileRef.addEventListener(Event.SELECT, fileRef_select);
            fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);
            fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
        }

        private function browseAndUpload():void {
            fileRef.browse();
            message.text = "";
        }

        private function fileRef_select(evt:Event):void {
            try {
                message.text = "Size (bytes): " + numberFormatter.format(fileRef.size);
                fileRef.upload(new URLRequest(FILE_UPLOAD_URL));
            } catch (err:Error) {
                message.text = "ERROR: zero-byte file";
            }
        }

        private function fileRef_progress(evt:ProgressEvent):void {
            progressBar.visible = true;
            Application.application.enabled = false;
        }

        private function fileRef_complete(evt:Event):void {
            message.text += " (Complete)";
            progressBar.visible = false;
            Application.application.enabled = true;
        }
    ]]>
</mx:Script>