Flash / Flex / ActionScript/Development/FileReference
Содержание
Downloading Files
<source lang="java">
package{
import flash.display.Sprite; import flash.net.*; public class Main extends Sprite{ public function Main(){ var fileReference:FileReference = new FileReference( ); var urlRequest:URLRequest = new URLRequest("example.txt"); fileReference.download(urlRequest); } }
}
</source>
File Upload
<source lang="java">
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.events.IOErrorEvent; import flash.events.ProgressEvent; import flash.events.SecurityErrorEvent; import flash.net.FileReference; import flash.net.URLRequest; public class Main extends Sprite {
private var _browse:TextField = new TextField(); private var _upload:TextField = new TextField(); private var _fileReference:FileReference = new FileReference(); public function Main() { _browse.htmlText = "click to browse file"; _browse.addEventListener(MouseEvent.CLICK, browseHandler); addChild(_browse); _upload.htmlText = "click to upload file"; _upload.addEventListener(MouseEvent.CLICK, uploadHandler); _upload.x = 200; addChild(_upload); _fileReference.addEventListener(Event.SELECT, selectHandler); _fileReference.addEventListener(Event.CANCEL, cancelHandler); _fileReference.addEventListener(ProgressEvent.PROGRESS, progressHandler); _fileReference.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); _fileReference.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityHandler); _fileReference.addEventListener(Event.ruPLETE, completeHandler); } private function browseHandler(event:MouseEvent):void { _fileReference.browse(); } private function selectHandler(event:Event):void { trace("Selected File"); trace("\nName: "+ _fileReference.name); trace("\nSize: "+ _fileReference.size); trace("\nCreated On: "+ _fileReference.creationDate); trace("\nModified On: "+ _fileReference.modificationDate); _upload.visible = true; } private function cancelHandler(event:Event):void { trace("Canceled"); } private function uploadHandler(event:MouseEvent):void { _fileReference.upload(new URLRequest("simpleFileUpload.php")); } private function progressHandler(event:ProgressEvent):void { trace("file uploading\noprogress (bytes): "+ event.bytesLoaded + "/ "+ event.bytesTotal); } private function ioErrorHandler(event:IOErrorEvent):void { trace("an IO error occurred"); } private function securityHandler(event:SecurityErrorEvent):void { trace("a security error occurred"); } private function completeHandler(event:Event):void { trace("the file has uploaded"); }
} }
</source>
Listener to select and Cancel event from FileReference
<source lang="java">
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference;
public class Main extends Sprite { private var _browse:TextField = new TextField(); private var _fileReference:FileReference= new FileReference(); public function Main() { _browse.htmlText = "click to browse files"; _browse.addEventListener(MouseEvent.CLICK, clickHandler); addChild(_browse); _fileReference.addEventListener(Event.SELECT, selectHandler); _fileReference.addEventListener(Event.CANCEL, cancelHandler); } private function clickHandler(event:MouseEvent):void { _fileReference.browse(); } private function selectHandler(event:Event):void { trace("Selected File"); } private function cancelHandler(event:Event):void { trace("Canceled"); } }
}
</source>
Retrieving File Properties
<source lang="java">
package {
import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference; public class Main extends Sprite { private var _browse:TextField = new TextField(); private var _fileReference:FileReference = new FileReference(); public function Files() { _browse.htmlText = "click to browse files"; _browse.addEventListener(MouseEvent.CLICK, clickHandler); addChild(_browse); _fileReference.addEventListener(Event.SELECT, selectHandler); _fileReference.addEventListener(Event.CANCEL, cancelHandler); } private function clickHandler(event:MouseEvent):void { _fileReference.browse(); } private function selectHandler(event:Event):void { trace("Selected File"); trace("\nName: "+ _fileReference.name); trace("\nSize: "+ _fileReference.size); trace("\nCreated On: "+ _fileReference.creationDate); trace("\nModified On: "+ _fileReference.modificationDate); } private function cancelHandler(event:Event):void { trace("Canceled"); } }
}
</source>
Uploading Files
<source lang="java">
package{
import flash.display.Sprite; import flash.net.*; public class Main extends Sprite{ public function Main(){ var fileReference:FileReference = new FileReference( ); var urlRequest:URLRequest = new URLRequest("uploadScript.cgi"); fileReference.upload(urlRequest); fileReference.upload(urlRequest, "UploadFile");
} }
}
</source>
uses a FileReferenceList and displays the details of each file that was selected
<source lang="java">
package {
import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference; import flash.net.FileReferenceList; public class Main extends Sprite { private var _browse:TextField = new TextField(); private var _fileReferenceList:FileReferenceList; public function Main() { _browse.htmlText = "click to browse files"; _browse.addEventListener(MouseEvent.CLICK, clickHandler); addChild(_browse); _fileReferenceList = new FileReferenceList(); _fileReferenceList.addEventListener(Event.SELECT, selectHandler); _fileReferenceList.addEventListener(Event.CANCEL, cancelHandler); } private function clickHandler(event:MouseEvent):void { _fileReferenceList.browse(); } private function selectHandler(event:Event):void { _output.text = "Selected Files"; var file:FileReference; for(var i:Number = 0; i < _fileReferenceList.fileList.length; i++) { file = _fileReferenceList.fileList[i]; trace("\nName: "+ file.name); trace("\nSize: "+ file.size); trace("\nCreated On: "+ file.creationDate); trace("\nModified On: "+ file.modificationDate); trace("\n----------------------------------"); } } private function cancelHandler(event:Event):void { trace("Canceled"); } }
}
</source>