Flash로 파일업로드하기

|
 

플래쉬에서도 파일업로드가 가능합니다..

실제 적용된 사례로는 YouTUBE의 파일업로드 부분이구요...


일반 폼 파일 업로드와 비교해서 이점은 파일전송량을 볼수 있다는게 되겠습니다...


플래쉬에서 파일 업로드를 사용하려면 먼저 해당 클래스를 import해야 합니다.


import flash.net.FileReference


저기의 FileReference라는녀석이 파일 다운/업을 관리하는 클래스입니다.


FileReference 객체를 하나 생성하여,

browse()메소드를 사용하면 로컬 컴퓨터에서 파일을 선택할수 있는 다이얼로그가 뜨고,

browse()후 바로 upload("서버스크립트")하면 전송을 시작합니다.


서버측 스크립트는 파일만 받는 스크립트로 따로 작성을 해야 하구요....

서버측스크립트에서 받는 파일이 저장된 변수명은 Filedata입니다.

(PHP=$_FILES["Filedata"], ASP/JSP=Request객체의 Filedata)


그리고 액션 리스너를 등록하여 각 처리상태에 따라 일정 작업을 할수 있습니다...

업(다운)이 시작되었을때와 성공적으로 완료되었을때,

물론 에러가 발생했을때 호출되는 이벤트 리스너도 있습니다.


전송중에는 onProgress 이벤트리스너가 있구요...

레퍼런스 보시면 잘 나와 있습니다.


용량제한은,

서버측 스크립트의 설정에 따르고,

플래쉬엔 레퍼런스에는 100M라고 되어있습니다만, 실제 전송은 700M도 되긴 하더군요,

하지만 전송이 되고 나서 용량제한으로 서버측에서 처리가 되지 않더라도

성공적으로 완료되었을때 호출되는 onComplete가 호출됩니다...


실제 업로드 전에 FileReference로 파일사이즈를 체크하여 차단해야 할듯 합니다...


제가 시험적으로 만들어본 업로더에서는 컴포넌트 구성요소중 리스트와 프로그레스를 사용해 보았는데,

설치된 플래쉬의 도움말의 레퍼런스에는 컴포넌트부분이 빠져있더군요,

그래서 매크로미디어(어도비) 홈페이지에서 찾아보니 거기엔 있더군요..


http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/js/html/wwhelp.htm


주의하셔야 할것은 플래쉬8포함 이전버전은 ActionScript 2.0이구요,

CS3는 버전 3.0입니다...


클래스 구성이 완전 틀리니 알아두시길...


첨부는 제가 인터넷에서 구한 예제 파일이고,

And