Read large text file by flex on client(don't need upload)
private var filesUploadRefer:FileReference;
[Bindable]
private var arrContents:ArrayCollection = new ArrayCollection();
private var ediFile:FileFilter = new FileFilter("Text Files", "*.txt");
private var allFiles:FileFilter = new FileFilter("All Files", "*.*");
private var fileHeaders:Array = [ediFile,allFiles];
//create button browse
protected function btnBrowse_clickHandler(event:MouseEvent):void
{
filesUploadRefer = new FileReference();
filesUploadRefer.browse(fileHeaders);
filesUploadRefer.addEventListener(Event.SELECT, onSelectFileUpLoad);
}
//Handle when file selected
private function onSelectFileUpLoad(event:Event):void
{
filesUploadRefer.removeEventListener(Event.SELECT, onSelectFileUpLoad);
ptxtFile.text = filesUploadRefer.name;
filesUploadRefer.addEventListener(Event.COMPLETE,onSelectFile);
filesUploadRefer.load();
}
//Handle when finish reading file content
private function onSelectFile(event:Event):void
{
var listener:FileReference = event.currentTarget as FileReference;
listener.removeEventListener(Event.COMPLETE,onSelectFile);
var bytes:ByteArray = listener.data;
arrContents.removeAll();
pSQLForUpdate.text = "";
while(bytes.bytesAvailable>1000)
{
arrContents.addItem(bytes.readUTFBytes(1000));
}
arrContents.addItem(bytes.readUTFBytes(bytes.bytesAvailable));
for(var i:int = 0; i<arrContents.length; i++)
{
txtContent.text += String(arrContents.getItemAt(i)); }
}
No comments :
Post a Comment