| Package | flash.net |
| Class | public class FileReference |
| Inheritance | FileReference EventDispatcher Object |
FileReference 인스턴스는, 다음의 2 통과해 방법으로 작성할 수 있습니다.
new 연산자를 사용하는 방법 : var myFileReference = new FileReference();FileReferenceList.browse() Methods를 호출하는 방법입니다. 이것에 의해 FileReference object의 배열이 작성됩니다. 업 로드 처리의 실행중, FileReference object의 모든 property의 값이,FileReference.browse() 또는 FileReferenceList.browse() Methods에의 호출에 의해 설정됩니다. 다운로드 처리의 실행중,name property의 값은 select 이벤트가 dispatch되었을 때에 설정됩니다. 이외의 모든 property의 값은,complete 이벤트가 dispatch되었을 때에 설정됩니다.
browse() Methods는 operating system의 다이알로그 박스를 열어, 유저가 업 로드 대상의 파일을 선택할 수 있도록(듯이) 합니다. FileReference.browse() Methods를 사용하면, 유저는 단일의 파일을 선택할 수 있습니다. FileReferenceList.browse() Methods를 사용하면, 복수의 파일을 선택할 수 있습니다. browse() Methods의 호출이 정상적으로 종료하면,FileReference.upload() Methods를 호출해 한 번에 1 개의 파일을 업 로드합니다. FileReference.download() Methods는, 파일의 보존처를 유저로 지정시켜, 리모트 URL 로부터의 다운로드를 개시합니다.
browse() 또는 download() Methods에 의해 생성되는 다이알로그 박스의 디폴트의 파일의 장소를, FileReference 클래스 및 FileReferenceList 클래스를 사용해 설정할 수 없습니다. 다이알로그 박스에 표시되는 디폴트의 장소는, 마지막에 참조된 폴더 (그 자리소를 결정할 수 있는 경우) 또는 데스크탑입니다. 이러한 클래스를 사용해, 전송 파일을 읽어들이거나 전송 파일에 기입하거나 할 수 없습니다. 이러한 클래스를 사용해도, 업 로드 또는 다운로드를 개시한 SWF 파일이, 업 로드 파일이나 다운로드 파일, 또는 유저의 디스크의 파일의 장소에 액세스 할 수 없습니다.
또 FileReference 와 FileReferenceList 클래스는 인증 방법도 제공하지 않습니다. 인증이 필요한 서버에서는, Flash® Player 브라우저 플러그 인을 사용해 파일을 다운로드할 수 있습니다만, 모든 Player 에서의 업 로드, 및 standalone 또는 외부 Player 에서의 다운로드는 실패합니다. FileReference 이벤트를 릿슨 해, 처리가 정상적으로 종료했는지 어떠했는지를 확인해, 에러 처리를 실시합니다.
업 로드 처리 및 다운로드 처리의 경우, SWF 파일은, 그 자체의 도메인내에 포함되는 파일인 만큼 액세스 할 수 있습니다. 이러한 도메인에는, 크로스 도메인 policy 파일로 지정된 도메인이 포함됩니다. 업 로드 또는 다운로드를 개시하고 있는 SWF 가, 파일 서버와 같은 도메인에 속하지 않은 경우, 파일 서버에 policy 파일을 배치합니다.
FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods에의 호출의 실행중, Mac OS X 10.1 이전의 standalone의 외부 Player 에서는 SWF 파일의 재생이 일시정지합니다.
Parameters가 지정되어 있지 않은 경우는, 다음의 샘플의 HTTP POST 요구가 Flash Player 로부터 서버 사이드 스크립트에 송신됩니다.
POST /handler.cfm HTTP/1. 1 Accept:text/* Content-Type:multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6 User-Agent:Shockwave Flash Host:www.example.com Content-Length: 421 Connection:Keep-Alive Cache-Control:no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="photo"; filename="MyFile.jpg" Content-Type:application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
유저가 "api_sig","api_key", 및 "auth_token" Parameters를 지정했을 경우는, Flash Player 는 다음의 HTTP POST 요구를 송신합니다.
POST /handler.cfm HTTP/1. 1 Accept:text/* Content-Type:multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6 User-Agent:Shockwave Flash Host:www.example.com Content-Length: 421 Connection:Keep-Alive Cache-Control:no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="api_sig" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="api_key" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="auth_token" XXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="photo"; filename="MyFile.jpg" Content-Type:application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
See also
| property | 정의 | ||
|---|---|---|---|
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| creationDate : Date
[read-only]
로컬 디스크상에 존재하는 파일의 작성일입니다.
| FileReference | ||
| creator : String
[read-only]
파일의 Macintosh 크리에이터 타입입니다.
| FileReference | ||
| modificationDate : Date
[read-only]
로컬 디스크상에 존재하는 파일의 최종 변경일입니다.
| FileReference | ||
| name : String
[read-only]
로컬 디스크상에 존재하는 파일의 이름입니다.
| FileReference | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| size : uint
[read-only]
로컬 디스크상에 존재하는 파일의 크기 (바이트 단위)입니다.
| FileReference | ||
| type : String
[read-only]
파일 형식입니다.
| FileReference | ||
| Methods | 정의 | ||
|---|---|---|---|
| FileReference ()
새로운 FileReference object를 작성합니다.
| FileReference | ||
![]() | addEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
| EventDispatcher | |
| browse (typeFilter:Array = null):Boolean
업 로드하는 파일을 선택할 수 있는 파일 참조 다이알로그 박스를 표시합니다.
| FileReference | ||
| cancel ():void
이 FileReference object로 진행중의 업 로드 처리 또는 다운로드 처리를 취소합니다.
| FileReference | ||
![]() | dispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
| EventDispatcher | |
| download (request:URLRequest , defaultFileName:String = null):void
리모트 서버-로부터 파일을 다운로드하기 위한 다이알로그 박스를 엽니다.
| FileReference | ||
![]() | hasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
| EventDispatcher | |
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | removeEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
| EventDispatcher | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
| upload (request:URLRequest , uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
유저가 선택한 파일을 리모트 서버-에 업 로드하는 처리를 개시합니다.
| FileReference | ||
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
![]() | willTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
| EventDispatcher | |
| 이벤트 | 일람 | 정의 | ||
|---|---|---|---|---|
| cancel | 파일의 업 로드 또는 다운로드가, 유저에 의해 캔슬되었을 때에 dispatch됩니다. | FileReference | ||
| complete | 다운로드가 완료, 또는 업 로드로 HTTP 스테이터스 코드 200 이 생성되었을 경우에 dispatch됩니다. | FileReference | ||
| httpStatus | 업 로드에 실패해, HTTP 스테이터스 코드를 사용해 실패를 기술할 수가 없는 경우에 dispatch됩니다. | FileReference | ||
| ioError | 업 로드 또는 다운로드가 실패했을 때에 dispatch됩니다. | FileReference | ||
| open | 업 로드 처리 또는 다운로드 처리가 개시할 경우에 dispatch됩니다. | FileReference | ||
| progress | 파일의 업 로드 처리중 또는 다운로드 처리중에 정기적으로 dispatch됩니다. | FileReference | ||
| securityError |
FileReference.upload() 또는 FileReference.download() Methods의 호출에 의해, 서버에 파일을 업 로드하는지, 호출원의 시큐러티 샌드 박스의 외부에 있는 서버로부터 파일을 취득하려고 하면, dispatch됩니다. | FileReference | ||
| select | 유저가 업 로드하는 파일 또는 다운로드하는 파일을 파일 참조 다이알로그 박스로부터 선택했을 때에, dispatch됩니다. | FileReference | ||
| creationDate | property |
creationDate:Date [read-only]
로컬 디스크상에 존재하는 파일의 작성일입니다. FileReference object에 값이 설정되어 있지 않은 경우에, 이 property의 값을 취득하는 호출을 하면 null 를 돌려줍니다.
public function get creationDate():Date
IllegalOperationError — FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,creationDate property의 값은 null 입니다.
|
|
IOError — 파일 정보에 액세스 할 수 없는 경우, I/O 에러를 나타내는 메세지와 함께 에러가 슬로우 됩니다.
|
See also
| creator | property |
creator:String [read-only]
파일의 Macintosh 크리에이터 타입입니다. Windows 의 경우, 이 property는 null 가 됩니다. FileReference object에 값이 설정되어 있지 않은 경우에, 이 property의 값을 취득하는 호출을 하면 null 를 돌려줍니다.
public function get creator():String
IllegalOperationError — Macintosh 에서는,FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,creator property의 값은 null 입니다.
|
See also
| modificationDate | property |
modificationDate:Date [read-only]
로컬 디스크상에 존재하는 파일의 최종 변경일입니다. FileReference object에 값이 설정되어 있지 않은 경우에, 이 property의 값을 취득하는 호출을 하면 null 를 돌려줍니다.
public function get modificationDate():Date
IllegalOperationError — FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,modificationDate property의 값은 null 입니다.
|
|
IOError — 파일 정보에 액세스 할 수 없는 경우, I/O 에러를 나타내는 메세지와 함께 에러가 슬로우 됩니다.
|
See also
| name | property |
name:String [read-only]
로컬 디스크상에 존재하는 파일의 이름입니다. FileReference object에 값이 설정되어 있지 않은 경우에, 이 property의 값을 취득하는 호출을 하면 null 를 돌려줍니다.
FileReference object의 모든 property의 값은,browse() Methods를 호출하는 것으로 설정됩니다. download() Methods를 호출했을 경우, 다른 FileReference 의 property와 달리,name property의 값은 select 이벤트가 dispatch되었을 때에 설정됩니다.
public function get name():String
IllegalOperationError — FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,name property의 값은 null 입니다.
|
See also
| size | property |
size:uint [read-only]
로컬 디스크상에 존재하는 파일의 크기 (바이트 단위)입니다. size 가 0 의 경우, 예외가 슬로우 됩니다.
public function get size():uint
IllegalOperationError — FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,size property의 값은 0 입니다.
|
|
IOError — 파일을 여는 것, 읽어낼 수가 없는 경우, 또는 파일에의 액세스로 같은 에러가 발생했을 경우, 예외가 슬로우 되어 파일의 I/O 에러를 알리는 메세지가 송신됩니다. 이 경우,size property의 값은 0 입니다.
|
See also
| type | property |
type:String [read-only]
파일 형식입니다. Windows 의 경우, 이 property는 파일 확장자(extension)가 됩니다. Macintosh 의 경우, 이 property는 4 캐릭터의 파일 타입이 됩니다. FileReference object에 값이 설정되어 있지 않은 경우에, 이 property의 값을 취득하는 호출을 하면 null 를 돌려줍니다.
public function get type():String
IllegalOperationError — FileReference.browse(),FileReferenceList.browse(), 또는 FileReference.download() Methods의 호출이 실패하면, 예외가 슬로우 되어 함수의 calling sequence가 올바르지 않은 것, 또는 이전의 호출이 실패한 것을 알리는 메세지가 송신됩니다. 이 경우,type property의 값은 null 입니다.
|
| FileReference | () | constructor |
public 함수 FileReference()새로운 FileReference object를 작성합니다. 설정되면, FileReference object는 유저의 로컬 디스크상의 파일을 나타냅니다.
See also
| browse | () | Methods |
public function browse(typeFilter:Array = null):Boolean 업 로드하는 파일을 선택할 수 있는 파일 참조 다이알로그 박스를 표시합니다. 이 다이알로그 박스는, operating system의 네이티브의 다이알로그 박스입니다. 유저는, 예를 들어 Windows 의 UNC 패스를 사용해, 로컬 컴퓨터 또는 다른 컴퓨터로부터 파일을 선택할 수 있습니다.
이 Methods를 호출해, 유저가 정상적으로 파일을 선택하면, 이 FileReference object의 property에 그 파일의 property가 설정됩니다. 이 이후 FileReference.browse() Methods가 불려 갈 때마다, FileReference object의 property는, 다이알로그 박스로 유저가 선택한 파일에 리셋트 됩니다. 한 번에 1 개의 browse() 세션 또는 download() 세션만을 실행할 수 있습니다. 이것은, 한 번에 1 개의 다이알로그 박스 밖에 호출할 수 없기 때문입니다.
어느 파일을 다이알로그 박스에 표시할까를 결정하기 위해서(때문에),typeFilter Parameters를 사용할 수 있습니다.
typeFilter:Array (default = null) — 다이알로그 박스에 표시하는 파일을 필터에 걸치는 경우에 사용하는 FileFilter 인스턴스의 배열입니다. 이 Parameters를 생략 하면, 모든 파일이 표시됩니다. 상세한 것에 대하여는,FileFilter 클래스를 참조해 주세요.
|
Boolean —
Parameters가 유효해, 파일 참조 다이알로그 박스가 표시되었을 경우에,true 를 돌려줍니다. browse Methods는, 다이알로그 박스가 열리지 않았던 경우, 이미 다른 브라우저 세션이 진행중인 경우, 또는 typelist Parameters가 사용되었지만, 배열내의 엘리먼트에 설명용 캐릭터 라인 또는 확장자(extension) string가 지정되어 있지 않은 경우는,false 를 돌려줍니다.
|
select:Event — 유저가 [참조] 파일 선택으로부터 아이템을 올바르게 선택하면, dispatch됩니다. |
|
cancel:Event — 유저가 파일 업 로드의 [참조] 윈도우를 캔슬하면, dispatch됩니다. |
IllegalOperationError — 다음의 상황으로 슬로우 됩니다. 1) 다른 FileReference 브라우즈 세션, 또는 FileReferenceList 브라우즈 세션이 진행중의 경우. 파일 브라우즈의 세션은, 한 번에 1 개만 실행할 수 있습니다. 2) 유저의 "mms.cfg" 파일의 설정에 의해, 이 조작이 금지되고 있는 경우.
|
|
ArgumentError — typeFilter 배열에, 부정한 형식의 FileFilter object가 포함되어 있으면, 예외가 슬로우 됩니다. FileFilter object의 올바른 형식의 상세한 것에 대하여는,FileFilter 클래스를 참조해 주세요.
|
See also
| cancel | () | Methods |
public function cancel():void
이 FileReference object로 진행중의 업 로드 처리 또는 다운로드 처리를 취소합니다. 이 Methods를 호출해도 cancel 이벤트는 dispatch되지 않습니다. 이 이벤트는, 유저가 파일 업 로드 또는 다운로드의 다이알로그 박스를 닫아 처리를 캔슬했을 경우에게만 dispatch됩니다.
| download | () | Methods |
public function download(request:URLRequest , defaultFileName:String = null):void 리모트 서버-로부터 파일을 다운로드하기 위한 다이알로그 박스를 엽니다. Flash Player 에서는 업 로드 또는 다운로드할 수 있는 파일의 크기에 제한은 없습니다만, 이 플레이어가 정식으로 지원(support)하고 있는 업 로드 또는 다운로드의 크기는 최대 100 MB 입니다.
download() Methods는, 우선, operating system의 다이알로그 박스를 표시해, 유저에게 파일명을 입력받은 후, 파일명의 보존처가 되는 로컬 컴퓨터상의 장소를 선택받습니다. 유저가 보존 장소를 선택해,[보존] 등을 클릭해, 파일을 로컬에 보존하는 것을 확인하면, 리모트 서버-로부터의 다운로드가 개시합니다. listener는, 다운로드가 진행중인가, 성공했는지, 실패했는지를 나타내는 이벤트를 받습니다. download() 를 호출한 후의 다이알로그 박스나 다운로드 처리 상태를 확인하려면 , ActionScript 로 cancel,open,progress, 및 complete 등의 이벤트를 릿슨 할 필요가 있습니다.
FileReference.upload() 함수와 FileReference.download() 함수는 논브록킹 처리를 실시합니다. 이러한 함수는 불려 간 후, 파일 전송이 완료하기 전에 돌려주어집니다. 게다가 FileReference object가 범위(scope)외로 이동했을 경우, 그 object에 대해서 완료하고 있지 않는 업 로드 또는 다운로드는, 범위(scope)로부터 멀어진 시점에서 캔슬됩니다. 업 로드 또는 다운로드의 속행을 기대할 수 있는 한은, FileReference object가 범위(scope)내에 있는 것을 확인해 주세요.
파일이 정상적으로 다운로드되면, FileReference object의 property에 로컬 파일의 property가 설정됩니다. 다운로드가 성공했을 경우,complete 이벤트가 dispatch됩니다.
한 번에 1 개의 browse() 세션 또는 download() 세션만을 실행할 수 있습니다. 이것은, 한 번에 1 개의 다이알로그 박스 밖에 호출할 수 없기 때문입니다.
이 Methods는, 어느 파일 타입의 다운로드에도 대응하고 있어, HTTP 와 HTTPS 의 모두 사용할 수 있습니다.
메모:서버로 사용자 인증이 필요한 경우, 브라우저내에서 실행된다, 즉, 브라우저 플러그 인 또는 ActiveX 컨트롤을 사용하는 SWF 파일에서만, 인증용의 유저명과 패스워드를 유저가 입력할 수 있는 다이알로그 박스를 표시할 수 있습니다. 다만, 그것은 다운로드의 경우만입니다. 플러그 인 또는 ActiveX 컨트롤을 사용하는 업 로드의 경우, 또는, standalone 또는 외부 Player 를 사용하는 업 로드와 다운로드의 경우, 파일 전송은 실패합니다.
이 Methods를 사용할 때는, Flash Player 시큐러티 모델을 고려해 주세요.
상세한 것에 대하여는, 다음의 주제를 참조해 주세요.
request:URLRequest — URLRequest object입니다. URLRequest object의 url property에는, 로컬 컴퓨터에 다운로드하는 파일의 URL 를 설정할 필요가 있습니다. 이 Parameters가 null 의 경우, 예외가 슬로우 됩니다. POST Parameters 또는 GET Parameters를 서버에 송신하려면 ,URLRequest.data 의 값에 임의의 Parameters를 설정해,URLRequest.method 에 URLRequestMethod.POST 또는 URLRequestMethod.GET 를 설정합니다.
일부의 브라우저에서는, URL string의 길이에 제한이 있는 것이 있습니다. 길이가 256 캐릭터를 넘는 경우, 일부의 브라우저 또는 서버에서는 실패하는 경우가 있습니다. |
|
defaultFileName:String (default = null) — 다운로드하는 파일로서 다이알로그 박스에 표시하는 디폴트 파일명입니다. 이 string에, 다음의 캐릭터를 포함하지 말아 주세요. / \ : * ? " < > | %
이 Parameters를 생략 하면, 리모트 URL 의 파일명이 구문 분석 되어, 디폴트로서 사용됩니다. |
open:Event — 다운로드 처리가 개시했을 때에 dispatch됩니다. |
|
progress:ProgressEvent — 파일의 다운로드 처리중에 정기적으로 dispatch됩니다. |
|
complete:Event — 파일의 다운로드 처리가 정상적으로 완료했을 때에 dispatch됩니다. |
|
cancel:Event — 유저가 다이알로그 박스를 닫으면, dispatch됩니다. |
|
select:Event — 다운로드하는 파일을 유저가 다이알로그 박스로부터 선택하면, dispatch됩니다. |
|
securityError:SecurityErrorEvent — 시큐러티 에러가 원인으로 다운로드가 실패했을 때에 dispatch됩니다. |
|
ioError:IOErrorEvent — 다음의 몇개의 이유로써 dispatch됩니다.
|
IllegalOperationError — 다음의 상황으로 슬로우 됩니다. 1) 다른 브라우즈 세션이 진행중의 경우. 파일 브라우즈의 세션은, 한 번에 1 개만 실행할 수 있습니다. 2) request 에게 건네진 값에, 무효인 패스 또는 프로토콜이 포함되어 있는 경우. 3) 다운로드하는 파일의 이름에 금지 캐릭터가 포함되어 있는 경우. 4) 유저의 "mms.cfg" 파일의 설정에 의해, 이 조작이 금지되고 있는 경우.
|
|
SecurityError — 신뢰되어 있지 않은 로컬 SWF 는 인터넷에의 접속이 허가되지 않습니다. 이 문제를 회피하려면 , 이 SWF 파일을, 네트워크 액세스가 허가된 로컬 SWF 파일, 또는 신뢰할 수 있는 SWF 파일로서 재분류합니다. 이 예외가 슬로우 되면, 로컬 파일의 시큐러티 제한이 원인으로 액세스 할 수 없는 파일명 및 URL 를 나타내는 메세지가 송신됩니다.
|
|
ArgumentError — url.data 가 ByteArray 형의 경우, 예외가 슬로우 됩니다. FileReference.upload() Methods 및 FileReference.download() Methods와 함께 사용하는 경우,url.data 는 URLVariables 형 또는 String 형에만 됩니다.
|
|
MemoryError — 이 에러는, 다음의 이유로써 발생할 가능성이 있습니다. 1) Flash Player 에서는 URLRequest.data Parameters를 UTF8 로부터 MBCS 로 변환할 수 없습니다. 이 에러는,FileReference.download() Methods에게 건네진 URLRequest object가 GET 조작을 실시하도록(듯이) 설정되었을 경우와System.useCodePage 이 true 로 설정되었을 경우에 발생하는 일이 있습니다. 2) Flash Player 에서는 POST 데이터에 메모리를 할당할 수가 없습니다. 이 에러는,FileReference.download() Methods에게 건네진 URLRequest object가 POST 조작을 실시하도록(듯이) 설정되었을 경우에 발생하는 일이 있습니다.
|
See also
download event object의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,downloadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.FileFilter;
public class FileReference_download extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_download() {
downloadURL = new URLRequest();
downloadURL.url = "http://www. [yourDomain]. com/SomeFile.pdf";
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
private function configureListeners(dispatcher:IEventDispatcher) :void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function cancelHandler(event:Event) :void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event) :void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent) :void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event) :void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
}
}
}
| upload | () | Methods |
public function upload(request:URLRequest , uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
유저가 선택한 파일을 리모트 서버-에 업 로드하는 처리를 개시합니다. Flash Player 에서는 업 로드 또는 다운로드할 수 있는 파일의 크기에 제한은 없습니다만, 이 플레이어가 정식으로 지원(support)하고 있는 업 로드 또는 다운로드의 크기는 최대 100 MB 입니다. 이 Methods를 호출하기 전에,FileReference.browse() Methods 또는 FileReferenceList.browse() Methods를 호출할 필요가 있습니다.
listener는, 업 로드가 진행중인가, 성공했는지, 실패했는지를 나타내는 이벤트를 받습니다. FileReferenceList object를 사용하면, 유저가 복수의 파일을 선택해 업 로드하는 것이 가능하게 됩니다만, 파일은 1 개씩 업 로드할 필요가 있습니다. 이 조작을 실행하려면 , FileReference object의 FileReferenceList.fileList 배열로 반복 처리를 실행합니다.
FileReference.upload() 함수와 FileReference.download() 함수는 논브록킹 처리를 실시합니다. 이러한 함수는 불려 간 후, 파일 전송이 완료하기 전에 돌려주어집니다. 게다가 FileReference object가 범위(scope)외로 이동했을 경우, 그 object에 대해서 완료하고 있지 않는 업 로드 또는 다운로드는, 범위(scope)로부터 멀어진 시점에서 캔슬됩니다. 업 로드 또는 다운로드의 속행을 기대할 수 있는 한은, FileReference object가 범위(scope)내에 있는 것을 확인해 주세요.
파일은,url Parameters에게 건네진 URL 에 업 로드됩니다. URL 는, 업 로드를 허가하도록(듯이) 설정된 서버 스크립트일 필요가 있습니다. Flash Player 는, HTTP POST Methods를 사용해 파일을 업 로드합니다. 업 로드를 처리하는 서버 스크립트는, 다음의 엘리먼트를 가지는 POST 리퀘스트를 상정하고 있습니다.
Content-Type 의 multipart/form-dataname 속성이 디폴트로 "Filedata",filename 속성이 원의 파일명으로 설정된 Content-DispositionPOST 요구의 샘플에 대해서는,uploadDataFieldName Parameters의 설명을 참조해 주세요. upload() Methods를 사용해,POST Parameters 또는 GET Parameters를 서버에 송신할 수 있습니다. request Parameters의 설명을 참조해 주세요.
testUpload Parameters가 true 로, 업 로드 대상의 파일이 약 10 KB 를 넘는 경우, Windows 용의 Flash Player 는, 전송이 성공할지 어떨지 검증하기 위해서, 실제의 파일을 업 로드하기 전에 테스트 업 로드로서 내용이 제로의 POST 처리를 송신합니다. 그 후 Flash Player 는, 실제의 파일 내용을 포함한 2 번째의 POST 처리를 송신합니다. 10 KB 미만의 파일의 경우, Flash Player 는, 업 로드 대상의 실제의 파일 내용을 포함한 POST 의 업 로드만을 실행합니다. Macintosh 용의 Flash Player 는, 테스트 업 로드의 POST 처리를 실행하지 않습니다.
이 Methods를 사용하는 경우는, Flash Player 시큐러티 모델에 관한 다음의 제한으로 주의해 주세요.
상세한 것에 대하여는, 다음의 주제를 참조해 주세요.
request:URLRequest — URLRequest object입니다. URLRequest object의 url property에는, HTTP 의 POST 호출을 사용해 업 로드를 처리하도록(듯이) 설정한 서버 스크립트의 URL 를 설정할 필요가 있습니다. 일부의 브라우저에서는, URL string의 길이에 제한이 있는 것이 있습니다. 길이가 256 캐릭터를 넘는 경우, 일부의 브라우저 또는 서버에서는 실패하는 경우가 있습니다. 이 Parameters가 null 의 경우, 예외가 슬로우 됩니다.
이 URL 에서는, HTTP 또는 HTTPS (시큐어 업 로드)를 사용할 수 있습니다. HTTPS 를 사용하려면 ,
|
|
uploadDataFieldName:String (default = "Filedata") — 업 로드 POST 조작의 파일 데이터에 선행하는 필드명입니다. uploadDataFieldName 값는, null 이외, 공백 이외의 string일 필요가 있습니다. 디폴트에서는,uploadDataFieldName 의 값은, 다음의 샘플 POST 요구에 나타내도록(듯이),"Filedata" 입니다.
Content-Type:multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition:form-data; name="Filedata"; filename="example.jpg" Content-Type:application/octet-stream ... contents of example.jpg ... --AaB03x-- |
|
testUpload:Boolean (default = false) — 테스트 파일 업 로드를 요구하기 위한 설정입니다. testUpload 가 true 로, 파일의 크기가 10 KB 를 넘는 경우, Flash Player 는, 컨텐츠장 0 으로 테스트 파일 업 로드의 POST를 시행합니다. 이 테스트 업 로드에서는, 실제의 파일의 업 로드가 성공할지 어떨지, 서버 인증이 필요한 경우는 그것이 성공할지 어떨지가 체크됩니다. 테스트 업 로드는, Windows 플레이어에서만 사용할 수 있습니다.
|
open:Event — 업 로드 처리가 개시했을 때에 dispatch됩니다. |
|
progress:ProgressEvent — 파일의 업 로드 처리중에 정기적으로 dispatch됩니다. |
|
complete:Event — 파일의 업 로드 처리가 정상적으로 완료했을 때에 dispatch됩니다. |
|
securityError:SecurityErrorEvent — 시큐러티 침해가 원인으로 업 로드가 실패했을 경우에 dispatch됩니다. |
|
httpStatus:HTTPStatusEvent — HTTP 에러가 원인으로 업 로드가 실패했을 경우에 dispatch됩니다. |
|
ioError:IOErrorEvent — 다음의 몇개의 상황에 합치하는 경우에 불려 갑니다.
|
SecurityError — 신뢰되어 있지 않은 로컬 SWF 는 인터넷에의 접속이 허가되지 않습니다. 이 문제를 회피하려면 , 이 SWF 파일을, 네트워크 액세스가 허가된 로컬 SWF 파일, 또는 신뢰할 수 있는 SWF 파일로서 재분류합니다. 이 예외가 슬로우 되면, 액세스 할 수 없는 로컬 파일의 이름 및 URL 를 나타내는 메세지가 송신됩니다.
|
|
IllegalOperationError — 다음의 상황으로 슬로우 됩니다. 1) 다른 FileReference 브라우즈 세션, 또는 FileReferenceList 브라우즈 세션이 진행중의 경우. 파일 브라우즈의 세션은, 한 번에 1 개만 실행할 수 있습니다. 2) URL Parameters가 유효한 패스 또는 프로토콜이 아닌 경우. 파일의 업 로드에서는 HTTP 를 사용해, 파일의 다운로드에서는 FTP 또는 HTTP 를 사용할 필요가 있습니다. 3) uploadDataFieldName Parameters가 null 로 설정되어 있는 경우. 4) 유저의 "mms.cfg" 파일의 설정에 의해, 이 조작이 금지되고 있는 경우.
|
|
ArgumentError — 다음의 상황으로 슬로우 됩니다. 1) uploadDataFieldName Parameters가 empty의 string의 경우. 2) url.data 가 ByteArray 형의 경우. FileReference.upload() Methods 및 FileReference.download() Methods와 함께 사용하는 경우,url.data 는 URLVariables 형 또는 String 형에만 됩니다.
|
|
MemoryError — 이 에러는, 다음의 이유로써 발생할 가능성이 있습니다. 1) Flash Player 에서는 URLRequest.data Parameters를 UTF8 로부터 MBCS 로 변환할 수 없습니다. 이 에러는,FileReference.upload() 에게 건네진 URLRequest object가 GET 조작을 실시하도록(듯이) 설정되었을 경우, 및 System.useCodePage 가 true 로 설정되었을 경우에 발생하는 일이 있습니다. 2) Flash Player 에서는 POST 데이터에 메모리를 할당할 수가 없습니다. 이 에러는,FileReference.upload() 에게 건네진 URLRequest object가 POST 조작을 실시하도록(듯이) 설정되었을 경우에 발생하는 일이 있습니다.
|
See also
| cancel | event |
flash.events.Event
flash.events.Event.CANCEL
파일의 업 로드 또는 다운로드가, 유저에 의해 캔슬되었을 때에 dispatch됩니다.
cancelevent object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 조작을 캔슬하는 object에의 참조입니다. |
cancel event object의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,downloadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_cancel extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_event_cancel() {
downloadURL = new URLRequest();
downloadURL.url = "http://www. [yourDomain]. com/SomeFile.pdf";
file = new FileReference();
file.addEventListener(Event.CANCEL, cancelHandler);
file.download(downloadURL, fileName);
}
private function cancelHandler(event:Event) :void {
trace("cancelHandler: " + event);
}
}
}
| complete | event |
flash.events.Event
flash.events.Event.COMPLETE
다운로드가 완료, 또는 업 로드로 HTTP 스테이터스 코드 200 이 생성되었을 경우에 dispatch됩니다. 파일의 다운로드의 경우, Flash Player 로 디스크에의 파일 전체의 다운로드가 완료하면, 이 이벤트가 dispatch됩니다. 파일의 업 로드의 경우, 전송을 수신한 서버로부터 HTTP 스테이터스 코드 200 을 Flash Player 가 받은 후, 이 이벤트가 dispatch됩니다.
complete event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 로드가 완료한 네트워크 object입니다. target 는, 반드시 event listener를 등록한 표시 리스트내의 object라고는 할 수 없습니다. 현재 이벤트를 처리하고 있는 표시 리스트내의 object에 액세스 하려면 ,currentTarget property를 사용합니다. |
complete event object의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,downloadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_complete extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_event_complete() {
downloadURL = new URLRequest();
downloadURL.url = "http://www. [yourDomain]. com/SomeFile.pdf";
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
private function configureListeners(dispatcher:IEventDispatcher) :void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function cancelHandler(event:Event) :void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event) :void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent) :void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event) :void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
}
}
}
See also
| httpStatus | event |
flash.events.HTTPStatusEvent
flash.events.HTTPStatusEvent.HTTP_STATUS
업 로드에 실패해, HTTP 스테이터스 코드를 사용해 실패를 기술할 수가 없는 경우에 dispatch됩니다. httpStatus 이벤트가 dispatch된 후,ioError 이벤트가 dispatch됩니다.
httpStatus 이벤트는, 업 로드가 실패했을 경우에게만 dispatch됩니다. 파일을 다운로드할 때, Flash Player 는 브라우저를 의지하므로, 이 이벤트는 다운로드 에러에서는 이용되지 않습니다. HTTP 에러를 위해서(때문에) 다운로드가 실패했을 경우는, I/O 에러로서 통지됩니다.
httpStatus event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
status | 서버로부터 돌려주어진 HTTP 스테이터스 코드입니다. |
target | HTTP 스테이터스 코드를 받는 네트워크 object입니다. |
See also
| ioError | event |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
업 로드 또는 다운로드가 실패했을 때에 dispatch됩니다. 다음의 몇개의 이유에 의해, 파일 전송에 실패하는 일이 있습니다.
upload() Methods의 url Parameters에게 건네진 값에, 무효인 프로토콜이 포함되어 있는 경우. 유효한 프로토콜은 HTTP 와 HTTPS 입니다. 중요 :브라우저내에서 실행된다, 즉, 브라우저 플러그 인 또는 ActiveX 컨트롤을 사용하는 Flash 어플리케이션에서만, 인증용의 유저명과 패스워드를 유저가 입력할 수 있는 다이알로그 박스를 표시할 수 있습니다. 게다가, 그것은 다운로드의 경우만입니다. 플러그 인 또는 ActiveX 컨트롤을 사용하는 업 로드의 경우, 또는, standalone 또는 외부 Player 를 사용하는 업 로드 또는 다운로드의 경우, 파일 전송은 실패합니다.
ioError event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 입출력 에러가 발생한 네트워크 object입니다. |
text | 에러 메세지로서 표시되는 텍스트입니다. |
See also
| open | event |
flash.events.Event
flash.events.Event.OPEN
업 로드 처리 또는 다운로드 처리가 개시할 경우에 dispatch됩니다.
open event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 접속을 오픈한 네트워크 object입니다. |
download event object의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,downloadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.FileFilter;
public class FileReference_download extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_download() {
downloadURL = new URLRequest();
downloadURL.url = "http://www. [yourDomain]. com/SomeFile.pdf";
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
private function configureListeners(dispatcher:IEventDispatcher) :void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function cancelHandler(event:Event) :void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event) :void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent) :void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event) :void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
}
}
}
See also
| progress | event |
flash.events.ProgressEvent
flash.events.ProgressEvent.PROGRESS
파일의 업 로드 처리중 또는 다운로드 처리중에 정기적으로 dispatch됩니다. progress 이벤트는, Flash Player 가 바이트를 서버에 전송 하고 있을 때 dispatch되어 최종적으로 전송이 성공하지 않아도, 전송의 실행중은 정기적으로 dispatch됩니다. 파일의 전송이 실제로 성공해 완료했는지 어떠했는지, 및 그 타이밍을 확인하려면 ,complete 이벤트를 받습니다.
경우에 따라서는,progress 이벤트는 수신되지 않습니다. 예를 들어, 전송 대상 파일이 매우 작은 경우나, 업 로드나 다운로드가 매우 단시간에 끝나는 경우,progress 이벤트는 dispatch되지 않는 경우가 있습니다.
파일의 업 로드의 진척 상황은, OS X 10.3 보다 전의 Macintosh 플랫폼에서는 확인할 수 없습니다. progress 이벤트는, 업 로드 처리중에 불려 갑니다만, progress 이벤트의 bytesLoaded property의 값은, 진척 상황을 확인할 수 없는 것을 나타내는 -1 입니다.
progress event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
bytesLoaded | listener가 이벤트를 처리하고 있을 때 로드 된 아이템수 또는 바이트수입니다. |
bytesTotal | 로드 프로세스가 성공했을 경우에 최종적으로 로드 되는 아이템 또는 바이트의 총수입니다. |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 진행 상황을 리포트하는 네트워크 object입니다. |
progress 이벤트의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,downloadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_progress extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_event_progress() {
downloadURL = new URLRequest();
downloadURL.url = "http://www. [yourDomain]. com/SomeFile.pdf";
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.download(downloadURL, fileName);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
}
}
See also
| securityError | event |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
FileReference.upload() 또는 FileReference.download() Methods의 호출에 의해, 서버에 파일을 업 로드하는지, 호출원의 시큐러티 샌드 박스의 외부에 있는 서버로부터 파일을 취득하려고 하면, dispatch됩니다. 발생한 특유의 에러를 나타내는 text property의 값은, 통상 "securitySandboxError" 입니다. 호출측의 SWF 파일이 자신의 도메인의 밖에 있는 SWF 파일에 액세스 하려고 해, 액세스권한이 없으면 발생합니다. 크로스 도메인 policy 파일을 사용하는 것으로, 이 에러에 대처할 수 있습니다.
SecurityErrorEvent.SECURITY_ERROR 정수는,securityError event object의 type property치를 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 시큐러티 에러를 보고하는 네트워크 object입니다. |
text | 에러 메세지로서 표시되는 텍스트입니다. |
See also
| select | event |
flash.events.Event
flash.events.Event.SELECT
유저가 업 로드하는 파일 또는 다운로드하는 파일을 파일 참조 다이알로그 박스로부터 선택했을 때에, dispatch됩니다. (이 다이알로그 박스는,FileReference.browse() Methods,FileReferenceList.browse() Methods, 또는FileReference.download() Methods를 호출했을 때에 열립니다). 유저가 파일을 선택해,[OK] 등을 클릭해 조작을 확인하면, FileReference object의 property에 값이 설정됩니다.
select 이벤트는, 어느 Methods에 의해 불려 갔는지를 응해, 조금 다른 동작을 실행합니다. browse() 호출의 뒤에 select 이벤트가 dispatch되었을 경우, Flash Player 는 FileReference object의 모든 property를 읽어낼 수가 있습니다. 이것은, 유저가 선택한 파일이, 로컬 파일 시스템에 존재하기 (위해)때문에입니다. download() 호출의 뒤에 select 이벤트가 발생했을 경우, Flash Player 는 name property만을 읽어낼 수가 있습니다. 이것은,select 이벤트가 dispatch된 시점에서는, 파일이 아직 로컬 파일 시스템에 다운로드되어 있지 않기 때문입니다. 파일이 다운로드되어complete 가 dispatch된 시점에서, Flash Player 는 FileReference object의 모든 property를 읽어낼 수가 있습니다.
select event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
target | 아이템이 선택된 FileReference object입니다. |
select event object의 사용 방법을 나타냅니다.
이 예를 실행하려면 ,uploadURL.url property를 변경해,
가공의 http://www. [yourDomain]. com/SomeFile.pdf 는 아니고 실제의 도메인 및 파일을 참조하도록(듯이) 합니다.
또,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
이 예를 데스크탑으로부터 실행하려면 ,
서버에 crossdomain.xml 파일이 필요합니다.
ioErrorHandler() 함수가 방아쇠 되면, 업 로드를 수신하도록(듯이) 설정된 유효한 URL 를 사용해,
지정의 uploadUrl 를 갱신할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_select extends Sprite {
private var uploadURL:URLRequest;
private var file:FileReference;
public function FileReference_event_select() {
uploadURL = new URLRequest();
uploadURL.url = "http://www. [yourDomain]. com/yourUploadHandlerScript.cfm";
file = new FileReference();
file.addEventListener(Event.SELECT, selectHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.browse();
}
private function selectHandler(event:Event) :void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
file.upload(uploadURL);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
}
}
메모:
이 예를 실행하려면 , uploadURL.url property를 변경해,
예의 가공의 URL 는 아니고 실제의 URL 를 참조하도록(듯이) 합니다. 이 URL 는,
지정한 URL 의 루트 Web 디렉토리내의 yourUploadHandlerScript.cfm 라는 이름의 파일을 참조하고 있을 필요가 있습니다.
설정에 근거해,[로컬에서의 재생에 관한 시큐러티] 를 [네트워크에게만 액세스 하는] 으로 설정해 SWF 파일을 컴파일 할 필요가 있는 경우도 있습니다.
또는 Flash Player 의 시큐러티 설정을 갱신해, 이 파일의 네트워크 액세스를 허가할 필요가 있는 경우가 있습니다.
package {
import flash.display.Sprite;
import flash.events. *;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReferenceExample extends Sprite {
private var uploadURL:URLRequest;
private var file:FileReference;
public function FileReferenceExample() {
uploadURL = new URLRequest();
uploadURL.url = "http://www. [yourDomain]. com/yourUploadHandlerScript.cfm";
file = new FileReference();
configureListeners(file);
file.browse(getTypes());
}
private function configureListeners(dispatcher:IEventDispatcher) :void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function getTypes() :Array {
var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return allTypes;
}
private function getImageTypeFilter() :FileFilter {
return new FileFilter("Images (*. jpg, *. jpeg, *. gif, *. png)", "*. jpg;*.jpeg;*.gif;*.png");
}
private function getTextTypeFilter() :FileFilter {
return new FileFilter("Text Files (*. txt, *. rtf)", "*. txt;*.rtf");
}
private function cancelHandler(event:Event) :void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event) :void {
trace("completeHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent) :void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event) :void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent) :void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent) :void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event) :void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
file.upload(uploadURL);
}
}
}
코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트
현재의 페이지: http://flexdocs.kr/docs/flex2/langref/flash/net/FileReference.html