Skip to content

Instantly share code, notes, and snippets.

@jarinudom
Created November 23, 2009 12:16
Show Gist options
  • Save jarinudom/241035 to your computer and use it in GitHub Desktop.
Save jarinudom/241035 to your computer and use it in GitHub Desktop.
var urlString:String = "http://example.com/myfile.zip";
var urlReq:URLRequest = new URLRequest(urlString);
private var urlStream:URLStream = new URLStream();
private var fileStream:FileStream = new FileStream();
urlStream.addEventListener(Event.COMPLETE, loaded);
urlStream.addEventListener(ProgressEvent.PROGRESS, writeFile);
var file:File = File.desktopDirectory.resolvePath("myfile.zip");
fileStream.openAsync(file, FileMode.WRITE);
urlStream.load(urlReq);
function writeFile(event:ProgressEvent):void {
// only write every 50k or so downloaded
if (urlStream.bytesAvailable > 51200) {
// Read the buffer into a ByteArray and write it to disk
var data:ByteArray = new ByteArray();
urlStream.readBytes(data, 0, urlStream.bytesAvailable);
fileStream.writeBytes(data, 0, data.length);
}
}
function loaded(event:Event):void {
// Write any remaining data to the file before closing it
var data:ByteArray = new ByteArray();
urlStream.readBytes(data, 0, urlStream.bytesAvailable);
fileStream.writeBytes(data, 0, data.length);
fileStream.close();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment