'FileReference'에 해당되는 글 2건

  1. 2008.09.21 서버에 클라이언트 파일전송
  2. 2008.09.21 파일 저장하기

클라이언트 PC에 있는 파일을 서버에 전송하는 방법은 두가지가 있다. 한개의 파일을 전송하는 것과 다량의 파일을 전송하는 방법이 있다. 한개의 파일을 전송하려면 FileReference()를 사용하고, 다량의 파일을 전송하고 싶으면 FileReferenceList() 클래스를 사용한다. 둘이 틀별한 차이점은 없고 FileReferenceList()는 FileReference()가 배열 형태로 포함되어 있다는 점만 다르다.

서버에 파일을 전송하기 위해 우선 유저는 파일을 검색하는 다이얼로그 창을 열어야 한다. 이는 각각에 browse()라는 메서드로 정의 되어있다. browse()가 호출되면 파일을 선택하는 다이얼로그 창이 팝업되고FileReference()는 파일이 한개만 선택되고 FileReferenceList()는 여러개의 파일을 선택할 수 있다. 물론 선택이 끝나면 Event.SELECT가 발생한다. 거의 브라우저에서 자동 차단되지만 다이얼로그창이 활성화 된상태에서 또 팝업하려고 시도 한다면 IllegalOperationError이라는 에러가 발생한다. 따라서 browse() 호출시 try catch로 에러를 방지해야 한다.

파일 선택 후 부터 FileReference()와 FileReferenceList()는 약간의 처리방식이 다르다.
FileReference()의 경우 파일이 한개 이므로 바로 upload()를 실행하면 된다.
하지만 FileReferenceList()는 FileReferenceList.fileList 안에 배열로 설정되어 있으므로 FileReferenceList.fileList의 길이 만큼 반복하면서 각각의 원소에 upload()를 실행해야 한다.

이러한 FileReference()와 FileReferenceList()에 의해서 불러온 사용자 파일의  BytesArray에 직접 접근못하는 것이 좀 아쉽지만 파일정보를 전혀 못 읽어오는 것은 아니다.

파일 레퍼런스에 불려진 파일의 정보를 읽는 파일레퍼런스의 속성은 다음과 같다.
creationDate : Date
로컬 디스크의 파일을 만든 날짜입니다. 
   
creator : String
파일의 Macintosh 작성자 유형입니다. 

modificationDate : Date
로컬 디스크 파일의 가장 최근 수정 날짜입니다.  
   
name : String
로컬 디스크에 있는 파일의 이름입니다.  
      
size : uint
로컬 디스크에 있는 파일의 크기(바이트)입니다. 
   
type : String
파일 유형입니다. 
Posted by 버터백통
사용자의 호출에 의해 서버에서 전송하는 파일을 저장 다이얼로그에 의해 위치와 이름을 확인하고 저장 하고 싶을 때는 FileReference()download()메서드를 사용한다.

FileReference() 객체는 파일을 저장하거나 서버에 저장할 때  그림과 같이 사용자가 다이얼로그창을 이용하여
클라이언트에 저장 또는 서버에 업로드 등을 지원하는 클래스이다.


FileReference를 사용하여 URLRequest로 접근할 때는 HTTP또는 HTTPS일때만 접근이 가능하다.
서버쪽에서 보안에 개념이 있다면 보통은 HTTPS를 선호하게 될 것이지만 우리는 크게 신경쓰지 않아도 된다. HTTP나 HTTPS는 AS3에서는 사용법이 별차이점이 없기 때문이다.

다이얼로그 창에서 사용자의 선택에따른 이벤트는 Event.SELECTEvent.CANCEL가 발생한다 각각의 역할에 맞는 함수를 구현해 두면 되고 저장시 진행사항을 보도 싶으면 ProgressEvent.PROGRESS를 추가로 더 등록하면 된다.
Posted by 버터백통