컴터/Air
air 멀티 다운로드시 URLStream 으로 서버 파일 읽어와 pc에 저장 시
우렁씨
2008. 9. 22. 23:32
Air로 멀티 다운로드 하는데,
보통은 URLStream 선언을 광역변수로 하기에 습관처럼 그렇게 했다가
계속 하나의 파일만 읽어오거나 첫번째 파일만 저장되어서
직접 URLStream 을 이벤트 함수에 등록하고 함수마다 이걸 불러 들였더니, 된다.
4일만의 쾌거다.. 언능 초보를 벗기 위해..에휴~
이제 집에 가야지.. ㅡㅡ;;
보통은 URLStream 선언을 광역변수로 하기에 습관처럼 그렇게 했다가
계속 하나의 파일만 읽어오거나 첫번째 파일만 저장되어서
직접 URLStream 을 이벤트 함수에 등록하고 함수마다 이걸 불러 들였더니, 된다.
4일만의 쾌거다.. 언능 초보를 벗기 위해..에휴~
이제 집에 가야지.. ㅡㅡ;;
private function readDownFile(f_name:String, f_path:String):void{
var urlReq:URLRequest = new URLRequest(incVars.incUrl().s_domain + f_path);
var urlStream:URLStream = new URLStream();
urlStream.addEventListener(ProgressEvent.PROGRESS, pgbReadFile);
urlStream.addEventListener(Event.COMPLETE, function():void{readDownFileWrite(f_name, f_path, urlStream);});
urlStream.addEventListener(IOErrorEvent.IO_ERROR, ioError);
urlStream.load(urlReq);
}
private function readDownFileWrite(f_name:String, f_path:String, urlStream:URLStream):void{
var fileStr:String = ssDirPath + "\\" + f_name;
var file:File = new File().resolvePath(fileStr);
urlStream.readBytes(btArr, 0, urlStream.bytesAvailable);
fileWriteDesk(file);
}
private function fileWriteDesk(file:File):void{
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(btArr, 0, btArr.length);
fileStream.close();
}
var urlReq:URLRequest = new URLRequest(incVars.incUrl().s_domain + f_path);
var urlStream:URLStream = new URLStream();
urlStream.addEventListener(ProgressEvent.PROGRESS, pgbReadFile);
urlStream.addEventListener(Event.COMPLETE, function():void{readDownFileWrite(f_name, f_path, urlStream);});
urlStream.addEventListener(IOErrorEvent.IO_ERROR, ioError);
urlStream.load(urlReq);
}
private function readDownFileWrite(f_name:String, f_path:String, urlStream:URLStream):void{
var fileStr:String = ssDirPath + "\\" + f_name;
var file:File = new File().resolvePath(fileStr);
urlStream.readBytes(btArr, 0, urlStream.bytesAvailable);
fileWriteDesk(file);
}
private function fileWriteDesk(file:File):void{
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(btArr, 0, btArr.length);
fileStream.close();
}