Главная / Action Script 3
Пакетflash.net
Классpublic class FileReference
НаследованиеFileReference Inheritance EventDispatcher Inheritance Object
Подклассы File

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс FileReference обеспечивает возможности загрузки и сохранения локальных файлов, а также отправки и загрузки файлов между компьютером пользователя и сервером. В диалоговом окне операционной системы содержится запрос на выбор существующего локального файла для загрузки или отправки или создание файлового каталога для сохранения или загрузки файла. Каждый объект FileReference ссылается на отдельный файл на диске пользователя и имеет свойства, в которых содержится различная информация о файле: размер, тип, имя, дата создания, дата модификации и тип создателя (только для Macintosh).

Существуют следующие способы создания экземпляров FileReference.

Во время операции загрузки или отправки все свойства объекта FileReference заполняются после того, как пользователь выберет файл в диалоговом окне, которое открывается с помощью методов FileReference.browse(), FileReferenceList.browse() или FileReferenceList.load().

Во время операции загрузки или сохранения свойство name заполняется при отправке события select. Все остальные свойства заполняются при отправке события complete.

Метод browse() открывает диалоговое окно операционной системы, предлагающее пользователю выбрать файл для отправки. С помощью метода FileReference.browse() пользователь может выбрать один файл, метод FileReferenceList.browse() позволяет выбирать сразу несколько файлов. После успешного вызова метода browse() для последовательной отправки файлов вызовите метод FileReference.upload(). Метод FileReference.download() запрашивает у пользователя адрес для сохранения файла и начинает загрузку с удаленного URL-адреса.

Классы FileReference и FileReferenceList не позволяют определять место хранения файла по умолчанию для диалогового окна, которое создают методы browse() или download(). Адресом по умолчанию, отображаемым в диалоговом окне, служит папка, просмотренная в самый последний раз (если это место может быть определено), или рабочий стол. Эти классы не разрешают операции записи или чтения в отношении переданного файла. Они закрывают для SWF-файла, который инициировал отправку или загрузку, доступ к переданному или загруженному файлу или месту размещения файла на диске пользователя.

Классы FileReference и FileReferenceList также не предоставляют методы аутентификации. При работе с серверами, требующими аутентификации, можно загружать файлы с помощью модуля обозревателя Flash® Player, но при этом отправка (во всех проигрывателях) и загрузка (в автономном или внешнем проигрывателе) закончатся сбоем. Следует прослушать события FileReference, чтобы определить, успешно ли завершились операции, а также обработать ошибки.

Для содержимого в Flash Player или в Adobe AIR, выполняемого за пределами изолированной программной среды безопасности для приложения, операции отправки и загрузки могут обращаться только к файлам, находящимся в его собственном домене и в доменах, перечисленных в файле политик для URL. Файл политик для следует разместить на файловом сервере, если содержимое, инициирующее отправку или загрузку, не принадлежит тому домену, в котором размещается файловый сервер.

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.

Во время выполнения вызовов FileReference.browse(), FileReferenceList.browse() или FileReference.download() воспроизведение SWF-файла приостанавливается в автономных и внешних проигрывателях для Linux® и Mac® OS® X 10.1 и более ранних версий.

Следующий пример запроса HTTP POST отправляется из Flash Player сценарию на сервере, если не заданы параметры:

  POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  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="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"
  
  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

Flash Player отправляет следующий запрос HTTP POST, если заданы параметры "api_sig", "api_key" и "auth_token":

  POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  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="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"
  
  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

Посмотреть примеры

См. также

flash.net.FileReferenceList
flash.filesystem.File
Работа с файлами данных


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  creationDate : Date
[только для чтения] Дата создания файла на локальном диске.
FileReference
  creator : String
[только для чтения] Тип создателя Macintosh для файла, который используется только в версиях OS, предшествующих Mac OS X.
FileReference
  data : ByteArray
[только для чтения] ByteArray, представляющий загруженный файл после успешного вызова метода load().
FileReference
  AIR-only extension : String
[только для чтения] Расширение имени файла.
FileReference
  modificationDate : Date
[только для чтения] Дата последнего изменения файла на локальном диске.
FileReference
  name : String
[только для чтения] Имя файла на локальном диске.
FileReference
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  size : Number
[только для чтения] Размер файла на локальном диске в байтах.
FileReference
  type : String
[только для чтения] Тип файла.
FileReference
Общедоступные методы
 МетодОпределено
  
Создает новый объект FileReference.
FileReference
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
  
browse(typeFilter:Array = null):Boolean
Отображает диалоговое окно выбора файлов, позволяющее пользователю выбрать файл для отправки.
FileReference
  
Отменяет любую текущую операцию отправки или загрузки в отношении данного объекта FileReference.
FileReference
 Inherited
Передает событие в поток событий.
EventDispatcher
  
download(request:URLRequest, defaultFileName:String = null):void
Открывает диалоговое окно, позволяющее пользователю загрузить файл с удаленного сервера.
FileReference
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
Начинает загрузку локального файла, выбранного пользователем.
FileReference
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
save(data:*, defaultFileName:String = null):void
Открывает диалоговое окно, позволяющее пользователю сохранить файл в локальной файловой системе.
FileReference
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
  
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
Запускает отправку выбранного пользователем файла на удаленный сервер.
FileReference
  
Инициируют отправку файла в URL без кодировки.
FileReference
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправка выполняется, если операция загрузки, сохранения или отправки файла отменена пользователем в диалоговом окне обозревателя файлов.FileReference
  Отправка выполняется по завершении операции загрузки или сохранения или при создании операцией отправки кода состояния HTTP 200.FileReference
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
  Отправляется, если вызов метода upload() или uploadUnencoded() пытается обратиться к данным через HTTP и Adobe AIR может обнаружить и вернуть код состояния для запроса.FileReference
  Отправляется, когда при отправке происходит ошибка и доступен код состояния HTTP, описывающий ошибку.FileReference
  Отправка выполняется, если происходит сбой операции загрузки, сохранения или отправки файла по одной из следующих причин: ошибка ввода-вывода возникла во время чтения, записи или передачи файла проигрывателем. В SWF-файле в приложении AIR предпринимается попытка загрузить файл на сервер, на котором требуется аутентификация (например, имя пользователя и пароль).FileReference
  Отправка выполняется при запуске операции загрузки, сохранения или отправки файла.FileReference
  Отправка выполняется периодически во время операции загрузки, сохранения или отправки файла.FileReference
  Отправляется, когда путем вызова метода FileReference.upload() или FileReference.download() предпринимается попытка передать файл на сервер или получить файл с сервера, находящегося за пределами изолированной среды вызывающего объекта.FileReference
  Отправка выполняется при выборе пользователем файла для загрузки, сохранения или выгрузки в диалоговом окне обозревателя файлов.FileReference
  Отправляется после получения с сервера данных о успешном завершении отправки.FileReference
Сведения о свойстве
creationDateсвойство
creationDate:Date  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Дата создания файла на локальном диске. Если объект не был заполнен, вызов с целью получения значения данного свойства возвращает значение null.



Реализация
    public function get creationDate():Date

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства creationDate равно null.
 
IOError — Если информация файла недоступна, создается исключение с сообщением, регистрирующим ошибку ввода-вывода файла.

См. также

creatorсвойство 
creator:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Тип создателя Macintosh для файла, который используется только в версиях OS, предшествующих Mac OS X. В Windows это свойство имеет значение null. Если объект FileReference object не был заполнен, вызов с целью получения значения данного свойства возвращает значение null.



Реализация
    public function get creator():String

Выдает
IllegalOperationError — На компьютерах Macintosh при неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства creator равно null.

См. также

dataсвойство 
data:ByteArray  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

ByteArray, представляющий загруженный файл после успешного вызова метода load().



Реализация
    public function get data():ByteArray

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.load() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства data равно null.
 
IOError — Если файл не открывается или не считывается или если подобная ошибка возникает при обращении к файлу, в системе создается исключение с сообщением, указывающим на ошибку ввода-вывода файла. В этом случае значение свойства data равно null.

См. также

AIR-only extensionсвойство 
extension:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0

Расширение имени файла.

Расширение файла — это часть имени после последней точки ("."), не включая ее. Если в имени файла нет точки, то расширение имеет значение null.

Примечание. Для определения типа файла следует использовать свойство extension, а не creator или type. Свойства creator и type в данном случае несущественны. Они применяются к устаревшим версиям Mac OS.



Реализация
    public function get extension():String

Выдает
IllegalOperationError — Если ссылка не инициализирована.
modificationDateсвойство 
modificationDate:Date  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  9, 9

Дата последнего изменения файла на локальном диске. Если объект FileReference object не был заполнен, вызов с целью получения значения данного свойства возвращает значение null.



Реализация
    public function get modificationDate():Date

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства modificationDate равно null.
 
IOError — Если информация файла недоступна, создается исключение с сообщением, регистрирующим ошибку ввода-вывода файла.

См. также

nameсвойство 
name:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Имя файла на локальном диске. Если объект FileReference не был заполнен (путем допустимого вызова FileReference.download() или FileReference.browse()), то при запросе значения данного свойства проигрыватель Flash Player выдает ошибку.

Все свойства объекта FileReference заполняются путем вызова метода browse(). В отличие от других свойств FileReference, при вызове метода download() свойство name заполняется после отправления события select.



Реализация
    public function get name():String

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем.

См. также

sizeсвойство 
size:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Размер файла на локальном диске в байтах. Если size имеет значение 0, выдается исключение.

Примечание. В исходной версии ActionScript 3.0 свойство size было определено как объект uint, поддерживавший файлы размером до 4 Гб. Сейчас он реализуется как объект Number для поддержки более крупных файлов.



Реализация
    public function get size():Number

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем.
 
IOError — Если файл не открывается или не считывается или если подобная ошибка возникает при обращении к файлу, в системе создается исключение с сообщением, указывающим на ошибку ввода-вывода файла.

См. также

typeсвойство 
type:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Тип файла. В операционной системе Windows это свойство указывает расширение файла. В операционной среде Macintosh это свойство указывает четырехзначный тип файла, который используется только в версиях Mac OS, предшествующих Mac OS X. Если объект FileReference object не был заполнен, вызов с целью получения значения данного свойства возвращает значение null.

Для Windows и Mac OS X расширение файла (то есть, часть свойства name после последней точки (.)), определяет тип файла.



Реализация
    public function get type():String

Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse(), FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства type равно null.

См. также

Сведения о конструкторе
FileReference()Конструктор
public function FileReference()

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает новый объект FileReference. В заполненном состоянии объект FileReference представляет собой файл на локальном диске пользователя.

См. также

Сведения о методе
browse()метод
public function browse(typeFilter:Array = null):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  9, 1.0

Отображает диалоговое окно выбора файлов, позволяющее пользователю выбрать файл для отправки. Это диалоговое окно принадлежит операционной системе пользователя. Пользователь может выбрать файл на локальном компьютере или в других системах (например, с помощью UNC-пути в операционной системе Windows).

Когда вы вызываете этот метод и пользователь успешно выбирает файл, свойства данного объекта FileReference заполняются свойствами выбранного файла. При каждом последующем вызове метода FileReferenceList.browse() свойства объекта FileReference соотносятся с файлом, который пользователь выбирает в диалоговом окне. Единовременно может выполняться только один сеанс browse() или download() (так как в любой момент времени можно вызвать только одно диалоговое окно).

В приложении Flash Player 10 и более поздней версии этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает ошибка.

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.

С помощью параметра typeFilterможно определить, какие файлы будут отображаться в диалоговом окне.

Параметры

typeFilter:Array (default = null) — Массив экземпляров FileFilter, который используется для фильтрации файлов, отображенных в диалоговом окне. Если данный параметр пропущен, то отображаются все файлы. Дополнительную информацию см. в описании класса FileFilter.

Возвращает
Boolean — Возвращает значение true при наличии допустимых параметров и открытии диалогового окна просмотра файлов.

События
select:Event — Отправляется, когда пользователь успешно выбирает элемент в окне выбора файлов.
 
cancel:Event — Отправляется, когда пользователь закрывает окно выбора файлов для отправки.

Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Параметр в файле пользователя mms.cfg запрещает данную операцию.
 
ArgumentError — Если массив typeFilter содержит неправильно сформатированные объекты FileFilter, создается соответствующее исключение. Сведения о правильном формате для объектов FileFilter представлены в описании класса FileFilter.
 
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.

См. также

cancel()метод 
public function cancel():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отменяет любую текущую операцию отправки или загрузки в отношении данного объекта FileReference. Вызов данного метода не приводит к отправке события cancel. Оно отправляется только в тот момент, когда пользователь отменяет операцию путем закрытия диалогового окна отправки или загрузки файлов.

download()метод 
public function download(request:URLRequest, defaultFileName:String = null):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Открывает диалоговое окно, позволяющее пользователю загрузить файл с удаленного сервера. Несмотря на то, что Flash Player не имеет ограничений на размер отправляемых или загружаемых файлов, официально проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ.

Сначала метод download() открывает диалоговое окно операционной системы, в котором пользователь должен ввести имя файла и выбрать место на локальном компьютере для сохранения этого файла. После того как пользователь выберет нужное место и подтвердит операцию загрузки (например, путем нажатия кнопки "Сохранить"), начнется загрузка с удаленного сервера. Прослушиватели получают события для определения состояния, успешности или сбоя загрузки. Чтобы определить состояние диалогового окна и операции загрузки после вызова метода download(), код должен прослушивать такие события, как cancel, open, progress и complete.

Функции FileReference.upload() и FileReference.download() не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет зону действия, любая незавершенная отправка или загрузка в отношении данного объекта будет отменена в момент его выхода из зоны действия. Следите за тем, чтобы объект FileReference оставался в области действия на всем протяжении операции отправки или загрузки.

После успешной загрузки файла свойства объекта FileReference заполняются свойствами локального файла. Событие complete отправляется при успешном завершении загрузки.

Единовременно может выполняться только один сеанс browse() или download() (так как в любой момент времени можно вызвать только одно диалоговое окно).

Данный метод поддерживает загрузку файла любого типа по протоколу HTTP или HTTPS.

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение API-интерфейсов сетевого подключения" в главе книги Программирование на ActionScript 3.0.

Примечание. Если ваш сервер требует аутентификации пользователей, только Flash-приложения, запущенные в обозревателе (то есть, с использованием дополнительного модуля обозревателя или элемента управления ActiveX), могут представить пользователю диалоговое окно для ввода имени пользователя и пароля (для аутентификации) и только потом перейти к загрузкам. При отправке с помощью дополнительного модуля или элемента управления ActiveX, а также при загрузке или отправке данных посредством автономного или внешнего проигрывателя происходит сбой передачи файлов.

При использовании этого метода в содержимом, находящемся в изолированных программных средах безопасности, отличных от изолированной среды приложения, учитывайте модель безопасности Flash Player AIR:

Однако в Adobe AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде безопасности приложения (содержимое, установленное с приложением AIR).

Дополнительные сведения о безопасности см. в следующих ресурсах.

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.

Параметры

request:URLRequest — Объект URLRequest. В свойстве url объекта URLRequest должен быть указан URL-адрес файла, который необходимо загрузить на локальный компьютер. Если значение этого параметра равно null, создается исключение. Свойство requestHeaders объекта URLRequest игнорируется. Пользовательские заголовки запросов HTTP не поддерживаются ни при отправке, ни при загрузке данных. Чтобы отправить параметры POST или GET на сервер, установите для них значение URLRequest.data, а затем установите значение URLRequest.method для URLRequestMethod.POST или URLRequestMethod.GET.

В некоторых обозревателях URL-строки имеют ограниченную длину. Строки длиной свыше 256 символов могут не обрабатываться в некоторых обозревателях и серверах.

 
defaultFileName:String (default = null) — Имя файла, отображаемое по умолчанию в диалоговом окне загрузки файла. Данная строка не должна содержать следующие символы: / \ : * ? " < > | %

Если данный параметр опустить, будет обрабатываться и использоваться по умолчанию имя файла удаленного URL-адреса.


События
open:Event — Отправляется при запуске операции загрузки.
 
progress:ProgressEvent — Отправляется периодически в ходе операции загрузки файла.
 
complete:Event — Отправляется после успешного завершения операции загрузки файла.
 
cancel:Event — Отправляется, когда пользователь закрывает диалоговое окно.
 
select:Event — Отправляется, когда пользователь выбирает в диалоговом окне файл для загрузки.
 
securityError:SecurityErrorEvent — Отправляется при сбое загрузки вследствие ошибки в системе безопасности.
 
ioError:IOErrorEvent — Отправляется по любой из следующих причин:
  • возникновение ошибки ввода-вывода в процессе чтения или передачи файла.
  • SWF-содержимое в автономных или внешних версиях проигрывателя Flash Player пытается загрузить файл с сервера, требующего аутентификации. Во время загрузки автономные и внешние проигрыватели не обеспечивают пользователей возможностью ввода паролей. Если SWF-файл в этих проигрывателях пытается загрузить файл с сервера, требующего аутентификацию, то происходит сбой загрузки. Загрузка файлов может быть успешной только при использовании проигрывателей с дополнительными модулями и элементами управления ActiveX.

Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра (единовременно может быть запущен только один сеанс просмотра файлов). 2) Значение, переданное request, не содержит допустимый путь или протокол. 3) Имя загружаемого файла содержит запрещенные символы. 4) Параметр в файле пользователя mms.cfg запрещает данную операцию.
 
SecurityError — Локальное ненадежное содержимое изолируется от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим на отсутствие доступа к имени файла или URL-адресу вследствие локальных ограничений в системе безопасности файлов.
 
SecurityError — Если вы пытаетесь подключиться к обычно зарезервированному порту. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.
 
ArgumentError — Если параметр url.data имеет тип ByteArray, создается исключение. Для использования с методами FileReference.upload() и FileReference.download() параметр url.data может быть только следующего типа: URLVariables или String.
 
MemoryError — Данная ошибка может возникнуть по следующим причинам: 1) Проигрыватель Flash Player не может преобразовать значение параметра URLRequest.data из UTF8 в MBCS. Данная ошибка применяется, если объект URLRequest, переданный методу FileReference.download(), настроен на выполнение операции GET, а параметр System.useCodePage имеет значение true. 2) Проигрыватель Flash Player не может выделить память для данных POST. Данная ошибка применима, если переданный методу FileReference.download() объект URLRequest настроен на выполнение операции POST.
 
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.

См. также


Пример

В следующем примере показано применение объекта события download. Чтобы запустить данный пример, измените свойство downloadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный 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);
        }
    }
}
load()метод 
public function load():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Начинает загрузку локального файла, выбранного пользователем. Несмотря на то, что Flash Player не имеет ограничений на размер отправляемых, загружаемых или сохраняемых файлов, официально проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ. Перед тем как вызвать данный метод, следует вызвать метод FileReference.browse() или FileReferenceList.browse().

Прослушиватели получают события для определения состояния, успешности или сбоя загрузки. Несмотря на то, что с помощью объекта FileReferenceList можно предоставить пользователям возможность выбирать для загрузки сразу несколько файлов, загружать эти файлы следует по одному. Для этого надо выполнить итерации в отношении массива FileReferenceList.fileList объектов FileReference.

Функции FileReference.upload(), FileReference.download(), FileReference.load() и FileReference.save() не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет зону действия, любая незавершенная операция в отношении данного объекта будет отменена в момент его выхода из зоны действия. Следите за тем, чтобы объект FileReference оставался в области действия на всем протяжении операции отправки, загрузки или сохранения.

После успешной загрузки файла его содержимое становится доступным в свойстве data.

При использовании этого метода в содержимом, находящемся в изолированных программных средах безопасности, отличных от изолированной среды приложения, учитывайте модель безопасности Flash Player AIR:

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.


События
open:Event — Отправляется при запуске операции загрузки.
 
progress:ProgressEvent — Отправляется периодически в ходе операции загрузки файла.
 
complete:Event — Отправляется после успешного завершения операции загрузки файла.
 
ioError:IOErrorEvent — Вызывается при сбое загрузки из-за ошибки ввода-вывода при чтении файла.

Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Параметр в файле пользователя mms.cfg запрещает данную операцию.
 
MemoryError — Данная ошибка возникает в том случае, если проигрыватель Flash Player не может выделить память для указанного файла. Слишком большой файл или очень мало доступной памяти.

См. также

save()метод 
public function save(data:*, defaultFileName:String = null):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Открывает диалоговое окно, позволяющее пользователю сохранить файл в локальной файловой системе. Несмотря на то, что в приложениях Flash Player и Adobe AIR не накладываются ограничения на размер выгружаемых, загружаемых или сохраняемых файлов, формально поддерживается размер до 100 МБ.

Сначала метод save() открывает диалоговое окно операционной системы, в котором пользователь должен ввести имя файла и выбрать место на локальном компьютере для сохранения этого файла. После того как пользователь выберет нужное место и подтвердит операцию сохранения (например, путем нажатия кнопки "Сохранить"), начнется процесс сохранения. Прослушиватели получают события для определения состояния, успешности или сбоя операции сохранения. Чтобы определить состояние диалогового окна и операции сохранения после вызова метода save(), ваш код ActionScript должен предусматривать прослушивание таких событий как cancel, open, progress и complete.

Функции FileReference.upload(), FileReference.download(), FileReference.load() и FileReference.save() не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет зону действия, любая незавершенная операция в отношении данного объекта будет отменена в момент его выхода из зоны действия. Следите за тем, чтобы объект FileReference оставался в области действия на всем протяжении операции отправки, загрузки или сохранения.

При успешном сохранении файла свойства объекта FileReference заполняются свойствами локального файла. Событие complete отправляется при успешном завершении операции сохранения.

Единовременно может выполняться только один сеанс browse() или save() (так как в любой момент времени можно вызвать только одно диалоговое окно).

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.

Этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает ошибка.

Параметры

data:* — Сохраняемые данные. Данные могут быть представлены в одном из форматов и обработаны соответствующим образом:
  • Если значение этого параметра равно null, создается исключение.
  • Если этот параметр имеет значение String, данные сохраняются как текстовый файл в кодировке UTF-8.
  • Если этот параметр имеет значение XML, данные сохраняются в файле формата XML с сохранением всего форматирования.
  • Если данный параметр имеет значение ByteArray, он дословно записывается в файл данных.
  • Если данный параметр имеет другое, не указанное выше значение, то метод save() вызовет для него метод toString(). Если это приведет к сбою, будет создано соответствующее исключение.
 
defaultFileName:String (default = null) — Имя файла, отображаемое по умолчанию в диалоговом окне сохранения файла. Данная строка не должна содержать следующие символы: / \ : ~~ ? " < > | %

Если этот параметр опустить, имя файла будет пустым по умолчанию.


События
open:Event — Отправка выполняется при запуске операции сохранения.
 
progress:ProgressEvent — Отправка периодически выполняется в процессе операции сохранения.
 
complete:Event — Отправка выполняется при успешном завершении операции сохранения.
 
cancel:Event — Отправляется, когда пользователь закрывает диалоговое окно.
 
select:Event — Отправка выполняется при выборе пользователем в диалоговом окне местоположения для сохраненных файлов.
 
ioError:IOErrorEvent — Отправка выполняется при возникновении ошибки ввода-вывода во время сохранения файла.

Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра (единовременно может быть запущен только один сеанс просмотра файлов). 2) В имени файла содержатся запрещенные символы. 3) Параметр в файле пользователя mms.cfg запрещает данную операцию.
 
ArgumentError — Если параметр data не относится к типу ByteArray и не имеет метода toString(), создается исключение. Если параметр data не относится к типу XML и не имеет метода toXMLString(), создается исключение.
 
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.
 
MemoryError — Данная ошибка возникает в том случае, если проигрыватель Flash Player не может выделить память для указанного файла. Слишком большой файл или очень мало доступной памяти.

См. также

upload()метод 
public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Запускает отправку выбранного пользователем файла на удаленный сервер. Несмотря на то, что Flash Player не имеет ограничений на размер передаваемых или загружаемых файлов, официально проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ.Перед тем как вызвать данный метод, следует вызвать метод FileReference.browse() или FileReferenceList.browse().

Прослушиватели получают события для определения состояния, успешности или сбоя отправки. Несмотря на то, что с помощью объекта FileReferenceList можно предоставить пользователям возможность выбирать для отправки сразу несколько файлов, передавать эти файлы следует по одному. Для этого надо выполнить итерации в отношении массива FileReferenceList.fileList объектов FileReference.

Функции FileReference.upload() и FileReference.download() не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет зону действия, любая незавершенная отправка или загрузка в отношении данного объекта будет отменена в момент его выхода из зоны действия. Следите за тем, чтобы объект FileReference оставался в области действия на всем протяжении операции отправки или загрузки.

Файл передается на URL-адрес, указанный в параметре url. В качестве URL-адреса должен выступать сценарий сервера, сконфигурированный на принятие отправки данных. Проигрыватель Flash Player передает файлы с помощью метода POST по протоколу HTTP. Сценарий сервера, обрабатывающий отправку, должен ожидать запрос POST со следующими элементами:

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение API-интерфейсов сетевого подключения" в главе книги Программирование на ActionScript 3.0.

Образец запроса POST представлен в описании параметра uploadDataFieldName. Параметры POST или GET можно отправлять на сервер вместе с методом upload() (см. описание параметра request).

Если параметр testUpload имеет значение true, а размер передаваемого файла превышает 10 КБ, то в ОС Windows проигрыватель Flash Player сначала отправляет операцию тестовой отправки POST с нулевым содержимым. Это выполняется до отправки фактического файла с целью проверки механизма передачи. Затем проигрыватель Flash Player отправляет вторую операцию POST, в которой находится фактическое содержимое файла. При обработке файлов, размер которых не превышает 10 КБ, проигрыватель Flash Player выполняет отдельную отправку POST, используя при этом фактическое содержимое передаваемого файла. На компьютерах Macintosh проигрыватель Flash Player не выполняет операции тестовой отправки POST.

Примечание: Если ваш сервер требует аутентификации пользователей, только Flash-приложения, запущенные в обозревателе (то есть, с использованием дополнительного модуля обозревателя или элемента управления ActiveX), могут представить пользователю диалоговое окно для ввода имени пользователя и пароля (для аутентификации) и только потом перейти к загрузкам. При отправке с помощью дополнительного модуля или элемента управления ActiveX, а также при загрузке или отправке данных посредством автономного или внешнего проигрывателя происходит сбой передачи файлов.

При использовании этого метода в содержимом, находящемся в изолированных программных средах безопасности, отличных от изолированной среды приложения, учитывайте модель безопасности Flash Player AIR:

Однако в Adobe AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде безопасности приложения (содержимое, установленное с приложением AIR).

Дополнительные сведения о безопасности см. в следующих ресурсах.

Примите во внимание эти особенности, поскольку в приложение Flash Player добавлены новые функции. При публикации в приложении Flash Player 10 одновременно может быть активна только одна из следующих операций: FileReference.browse(), FileReference.upload(), FileReference.download(), FileReference.load(), FileReference.save(). В противном случае в приложении Flash Player возникает ошибка выполнения (код 2174). Используйте метод FileReference.cancel() для остановки выполняющейся операции. Это ограничение применяется только в приложении Flash Player 10. В предыдущих версиях Flash Player ограничение на одновременное выполнение нескольких операций не действует.

Параметры

request:URLRequest — Объект URLRequest. Свойство url объекта URLRequest должно содержать URL-адрес сценария сервера, настроенного на обработку операции отправки с помощью HTTP-вызовов POST. В некоторых обозревателях URL-строки имеют ограниченную длину. Строки длиной свыше 256 символов могут не обрабатываться в некоторых обозревателях и серверах. Если значение этого параметра равно null, создается исключение. Свойство requestHeaders объекта URLRequest игнорируется. Пользовательские заголовки запросов HTTP не поддерживаются ни при отправке, ни при загрузке данных.

Для URL-адреса может использоваться протокол HTTP или HTTPS (для защищенной отправки данных). Для использования HTTPS следует в параметре url указать URL-адрес с протоколом HTTPS. Если в параметре url не указан номер порта, то по умолчанию используется порт 80 для протокола HTTP и порт 443 для протокола HTTPS.

Чтобы отправить параметры POST или GET на сервер, установите необходимые параметры для свойства data объекта URLRequest, а также установите для свойства method значение URLRequestMethod.POST или URLRequestMethod.GET.

 
uploadDataFieldName:String (default = "Filedata") — Имя поля, предшествующее данным файла при операции отправки POST. Значение uploadDataFieldName не должно быть нулевым или пустой строкой. По умолчанию значение uploadDataFieldName равно "Filedata", как показано в следующем примере запроса POST:
    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 КБ проигрыватель Flash Player инициирует тестовую отправку POST, в которой параметр Content-Length имеет значение 0. При тестовой отправке проверяется, будет ли успешной отправка фактических файлов и, при необходимости, аутентификация сервера. Тестовая отправка доступна только для проигрывателей Windows.


События
open:Event — Отправляется в начале операции отправки.
 
progress:ProgressEvent — Отправляется периодически в ходе операции отправки файла.
 
complete:Event — Отправляется после успешного завершения операции отправки файла.
 
uploadCompleteData:Event — Отправляется при получении данных с сервера после успешной отправки файла.
 
securityError:SecurityErrorEvent — Отправляется при сбое отправки вследствие нарушения системы безопасности.
 
httpStatus:HTTPStatusEvent — Отправляется при возникновении сбоя отправки в результате ошибки протокола HTTP.
 
httpResponseStatus:HTTPStatusEvent — Операция отправки успешно завершается и сервер возвращает URL и заголовки ответа.
 
ioError:IOErrorEvent — Вызывается в любой из следующих ситуаций:
  • сбой отправки из-за ошибки ввода-вывода, возникшей в момент считывания, записи или передачи файла проигрывателем Flash Player или приложением Adobe AIR;
  • сбой отправки, вызванный попыткой загрузить файл на сервер, требующий аутентификации (имя пользователя и пароль). В процессе отправки у пользователя нет возможности ввести пароль.
  • Сбой отправки, вызванный тем, что параметр url содержит недопустимый протокол. Метод FileReference.upload() должен использовать протокол HTTP или HTTPS.

Выдает
SecurityError — Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим имя недоступного локального файла и URL-адрес.
 
SecurityError — Если вы пытаетесь подключиться к обычно зарезервированному порту. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.
 
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Параметр URL не является допустимым путем или протоколом. При отправке файлов должен использоваться протокол HTTP, а при загрузке файлов — FTP или HTTP. 3) Параметр uploadDataFieldName имеет значение null. 4) Параметр в файле пользователя mms.cfg запрещает данную операцию.
 
ArgumentError — Создается в следующих ситуациях: 1) Параметр uploadDataFieldName содержит пустую строку. 2) Параметр url.data имеет тип ByteArray. Для использования с методами FileReference.upload() и FileReference.download() параметр url.data может быть только следующего типа: URLVariables или String. 3) В модуле выполнения AIR (в изолированной программной среде безопасности приложения) метод запроса URLRequest не является GET или POST (вместо этого нужно использовать uploadEncoded()).
 
MemoryError — Данная ошибка может возникнуть по следующим причинам: 1) Проигрыватель Flash Player не может преобразовать значение параметра URLRequest.data из UTF8 в MBCS. Данная ошибка применяется, если объект URLRequest, переданный методу FileReference.upload(), настроен на выполнение операции GET, а параметр System.useCodePage имеет значение true. 2) Проигрыватель Flash Player не может выделить память для данных POST. Данная ошибка применима, если объект URLRequest, переданный методу FileReference.upload(), настроен на выполнение операции POST.

См. также

AIR-only uploadUnencoded()метод 
public function uploadUnencoded(request:URLRequest):void

Версии среды выполнения:  1.0

Инициируют отправку файла в URL без кодировки. Тогда как метод upload() кодирует файл в виде пакета данных, метод uploadUnencoded() передает содержимое файла как есть в теле запроса НТТР. Используйте метод uploadUnencoded(), если отправляемые данные уже закодированы в формате, понятном для получающего сервера. Обычно метод uploadeUnencoded() используется вместе с методом HTTP/WebDAV PUT.

Параметры

request:URLRequest — Объект URLRequest. Свойство url объекта URLRequest должно содержать URL-адрес сценария сервера, настроенного на обработку операции отправки с помощью HTTP-вызовов POST. В некоторых обозревателях URL-строки имеют ограниченную длину. Строки длиной свыше 256 символов могут не обрабатываться в некоторых обозревателях и серверах. Если значение этого параметра равно null, создается исключение.

Для URL-адреса может использоваться протокол HTTP или HTTPS (для защищенной отправки данных). Для использования HTTPS следует в параметре url указать URL-адрес с протоколом HTTPS. Если в параметре url не указан номер порта, то по умолчанию используется порт 80 для протокола HTTP и порт 443 для протокола HTTPS.

Чтобы отправить параметры POST или GET на сервер, установите необходимые параметры для свойства data объекта URLRequest, а также установите для свойства method значение URLRequestMethod.POST или URLRequestMethod.GET.


События
open:Event — Отправляется в начале операции отправки.
 
progress:ProgressEvent — Отправляется периодически в ходе операции отправки файла.
 
complete:Event — Отправляется после успешного завершения операции отправки файла.
 
uploadCompleteData:Event — Отправляется при получении данных с сервера после успешной отправки файла.
 
securityError:SecurityErrorEvent — Отправляется при сбое отправки вследствие нарушения системы безопасности.
 
httpStatus:HTTPStatusEvent — Отправляется при возникновении сбоя отправки в результате ошибки протокола HTTP.
 
httpResponseStatus:HTTPStatusEvent — Операция отправки успешно завершается и сервер возвращает URL и заголовки ответа.
 
ioError:IOErrorEvent — Вызывается в любой из следующих ситуаций:
  • сбой отправки из-за ошибки ввода-вывода, возникшей в момент, когда чтения, записи или передачи файла приложением Adobe AIR;
  • сбой отправки, вызванный попыткой загрузить файл на сервер, требующий аутентификации (имя пользователя и пароль). В процессе отправки у пользователя нет возможности ввести пароль.
  • Сбой отправки, вызванный тем, что параметр url содержит недопустимый протокол. Метод FileReference.upload() должен использовать протокол HTTP или HTTPS.

Выдает
SecurityError — Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим имя недоступного локального файла и URL-адрес.
 
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Параметр URL не является допустимым путем или протоколом. При отправке файла должен использоваться протокол НТТР.

См. также

Сведения о событии
cancel Событие
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.CANCEL

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется, если операция загрузки, сохранения или отправки файла отменена пользователем в диалоговом окне обозревателя файлов. В приложении Flash Player отправка этого события не выполняется, если пользователь отменяет эту операцию с использованием других возможностей (закрытие обозревателя или прекращение работы текущего приложения).

Константа Event.CANCEL определяет значение свойства type объекта события cancel.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСсылка на объект, для которого отменена операция.

Пример

В следующем примере показано применение объекта события cancel. Чтобы запустить данный пример, измените свойство downloadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный 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 Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.COMPLETE

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется по завершении операции загрузки или сохранения или при создании операцией отправки кода состояния HTTP 200. Для операций загрузки или сохранения файла отправка этого события выполняется, когда в приложении Flash Player или Adobe AIR файл полностью загружен на диск. При отправке файла это сообщение отправляется после того, как Flash Player или Adobe AIR получает от принимающего сервера код состояния НТТР со значением 200.

Константа Event.COMPLETE определяет значение свойства type объекта complete.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, который завершил загрузку.

Пример

В следующем примере показано применение объекта события complete. Чтобы запустить данный пример, измените свойство downloadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный 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);
        }
    }
}

См. также

AIR-only httpResponseStatus Событие  
Тип объекта события: flash.events.HTTPStatusEvent
свойство HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0

Отправляется, если вызов метода upload() или uploadUnencoded() пытается обратиться к данным через HTTP и Adobe AIR может обнаружить и вернуть код состояния для запроса.

В отличии от события httpStatus, событие httpResponseStatus доставляется до получения данных ответа. Таким образом, в событие httpResponseStatus входят значения свойств responseHeaders и responseURL (которые не определены для события httpStatus). Обратите внимание на то, что httpResponseStatus (при наличии такового) будет отправляться до (как дополнение) любого события complete или error.

Константа HTTPStatusEvent.HTTP_RESPONSE_STATUS определяет значение свойства type объекта события httpResponseStatus.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
responseURLURL-адрес, с которого был получен ответ.
responseHeadersЗаголовки ответа, возвращаемые в ответе, представляют собой массив объектов URLRequestHeader.
statusКод состояния HTTP, возвращенный сервером.
targetСетевой объект, получающий код состояния НТТР.

См. также

httpStatus Событие  
Тип объекта события: flash.events.HTTPStatusEvent
свойство HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_STATUS

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда при отправке происходит ошибка и доступен код состояния HTTP, описывающий ошибку. Отправляется событие httpStatus, а после него сразу же отправляется событие ioError.

Событие httpStatus отправляется только в случае сбоя операции отправки. Для содержимого, запущенного в проигрывателе Flash Player, это событие не применимо для сбоя загрузки. Если сбой загрузки происходит по причине ошибки HTTP, данная ошибка представляется как ошибка ввода-вывода.

Константа HTTPStatusEvent.HTTP_STATUS определяет значение свойства type объекта события httpStatus.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
statusКод состояния HTTP, возвращенный сервером.
targetСетевой объект, получающий код состояния НТТР.

См. также

ioError Событие  
Тип объекта события: flash.events.IOErrorEvent
свойство IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется, если происходит сбой операции загрузки, сохранения или выгрузки файла по одной из следующих причин:

Важно! Только приложения, выполняемые в обозревателе (то есть, использующие дополнительный модуль обозревателя или элемент управления ActiveX) и содержимое, выполняемое в Adobe AIR, могут сначала показывать диалоговое окно с запросом имени пользователя и пароля для проверки подлинности и только после этого открывать окно загрузки. Для отправки данных с помощью версии Flash Player, подключаемой к обозревателю или использующей элемент управления ActiveX, или для отправки или загрузки с помощью автономного или внешнего проигрывателя, отправка файлов заканчивается ошибкой.

Задает значение свойства type для объекта события ioError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, с которым произошла ошибка ввода/вывода.
textТекст, отображаемый в качестве сообщения об ошибке.

См. также

open Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.OPEN

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется при запуске операции загрузки, сохранения или отправки файла.

Константа Event.OPEN определяет значение свойства type объекта события open.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, установивший подключение.

Пример

В следующем примере показано применение объекта события download. Чтобы запустить данный пример, измените свойство downloadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный 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);
        }
    }
}

См. также

progress Событие  
Тип объекта события: flash.events.ProgressEvent
свойство ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется периодически во время операции загрузки, сохранения или отправки файла. Событие progress отправляется в процессе передачи проигрывателем Flash Player байтов на сервер. Оно периодически отправляется в течение всей операции передачи, даже если эта операция в конечном итоге не становится успешной. Чтобы определить, когда произойдет фактическое успешное завершение передачи файла, следует ожидать появления события complete.

В некоторых случаях события progress не приходят. Например, при отправке файла очень небольшого размера или при очень быстрой отправке или загрузке событие progress может быть не отправлено.

Состояние процесса отправки файла не определяется на платформе Macintosh (на любых версиях операционной системы ранее OS X 10.3). Событие progress вызывается во время операции отправки, но значение свойства bytesLoaded для события progress равно -1 (состояние не определяется).

Задает значение свойства type для объекта события progress.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
bytesLoadedЧисло элементов или байт, загруженных на момент обработки события прослушивателем.
bytesTotalОбщее число элементов или байт, которые в итоге будут получены в случае успешного завершения загрузки.
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, сообщающий сведения о прогрессе.

Пример

В следующем примере показано применение объекта progress. Чтобы запустить данный пример, измените свойство downloadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный 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);
        }
    }
}

См. также

securityError Событие  
Тип объекта события: flash.events.SecurityErrorEvent
свойство SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда путем вызова метода FileReference.upload() или FileReference.download() предпринимается попытка передать файл на сервер или получить файл с сервера, находящегося за пределами изолированной среды вызывающего объекта. Значением текстового свойства, описывающего возникшую специфическую ошибку, обычно является securitySandboxError. Возможно, вызывающий SWF-файл произвел попытку обращения к SWF-файлу за пределами своего домена, на что у него нет соответствующего разрешения. Для исправления данной ошибки можно использовать файл политики для URL.

В Adobe AIR эти ограничения по безопасности не применяются к содержимому в изолированной программной среде безопасности приложения.

Константа SecurityErrorEvent.SECURITY_ERROR определяет значение свойства type для объекта события securityError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, сообщающий об ошибке безопасности.
textТекст, отображаемый в качестве сообщения об ошибке.

См. также

select Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.SELECT

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправка выполняется при выборе пользователем файла для загрузки, сохранения или выгрузки в диалоговом окне обозревателя файлов. (Это диалоговое окно открывается при вызове одного из следующих методов:

Когда пользователь выбирает файл и подтверждает эту операцию (например, путем нажатия кнопки "ОК"), происходит заполнение свойств объекта FileReference.

Для содержимого, выполняемого в Flash Player или за пределами изолированной программной среды приложения в среде выполнения Adobe AIR, событие select ведет себя немного по-разному в зависимости от вызывающего его метода. Когда событие select отправляется после вызова метода browse(), Flash Player или приложение AIR получает возможность считывания всех свойств объекта FileReference, так как выбранный пользователем файл находится в локальной файловой системе. Когда событие select возникает после вызова download(), Flash Player илиприложение AIR может считать только свойство name, так как на момент отправки события select файл еще не загружен в локальную файловую систему. После того как файл загружен и событие complete отправлено, Flash Player илиприложение AIR может считывать все остальные свойства объекта FileReference.

Константа Event.SELECT определяет значение свойства type объекта события select.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, в котором выделен элемент.

Пример

В следующем примере показано применение объекта события select. Чтобы запустить данный пример, измените свойство uploadURL.url так, чтобы оно указывало реальный домен и файл, а не выдуманный http://www.[yourDomain].com/SomeFile.pdf. Чтобы обеспечить сетевой доступ к этому файлу, может также потребоваться скомпилировать SWF-файл с установленным для параметра "Безопасность локального воспроизведения" режимом "Доступ только к сети" или обновить параметры безопасности проигрывателя Flash Player. Для того чтобы этот пример можно было запустить с рабочего стола, необходимо, чтобы ваш сервер опубликовал файл crossdomain.xml. Запуск функции ioErrorHandler() свидетельствует о том, что возможно необходимо обновить предоставленный uploadURL, указав в нем действующий URL-адрес, настроенный на получение передаваемых данных.
 
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);
        }
    }
}
uploadCompleteData Событие  
Тип объекта события: flash.events.DataEvent
свойство DataEvent.type = flash.events.DataEvent.UPLOAD_COMPLETE_DATA

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Отправляется после получения с сервера данных о успешном завершении отправки. Это событие не отправляется, если сервер не возвращает данные.

Определяет значение свойства type объекта события uploadCompleteData.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
данныеНеобработанные данные, возвращенные сервером после успешной отправки файла.
targetОбъект FileReference, получающий данные после успешной отправки.
Примеры Как пользоваться примерами
FileReferenceExample.as

В следующем примере отображается формат данных и информация о состоянии файла, загруженного при выполнении кода.

Примечание. Чтобы запустить данный пример, следует изменить свойство uploadURL.url, чтобы вместо фиктивного адреса в этом примере оно указывало фактический (действующий) URL-адрес. URL-адрес должен указывать на файл yourUploadHandlerScript.cfm в корневом веб-каталоге указанного URL-адреса. В зависимости от вашей конфигурации, чтобы обеспечить сетевой доступ к этому файлу, может также потребоваться скомпилировать 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);
            dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
        }

        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 uploadCompleteDataHandler(event:DataEvent):void {
            trace("uploadCompleteData: " + 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);
        }
    }
}