air 멀티 다운로드시 URLStream 으로 서버 파일 읽어와 pc에 저장 시

컴터/Air 2008. 9. 22. 23:32
Air로 멀티 다운로드 하는데,
보통은 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(); 
    }
Trackbacks 0 : Comments 2
  1. 김민지 2012.10.04 19:23 Modify/Delete Reply

    안녕하세요
    질문이있어서 댓글 남깁니다.
    저도 마찬가지로 첫번째파일만 저장이 되어서 ㅠ

    위 소스에서 여러개의 파일을 다운로드할 때마다 readDownFile()를 호출해주어야 하는건가요?

    함수마다 불러들인다는 표현이 뭔지 잘 이해가 안되어서요 ㅠㅠ
    답글 부탁드립니다!

    • 우렁씨 2012.10.10 08:00 신고 Modify/Delete

      꽤 오래된 거라 기억이 가물거리네여 ㅡㅡ;

      요점은 new URLStream() 를 보통 클래스밖에서 선언해서 첫번째 파일만 다운받는것이었는데 method 내에 선언하므로써 각파일을 따로 저장한다는 것이었습니다~

Write a comment