Пакет | flash.net |
Класс | public class FileReference |
Наследование | FileReference EventDispatcher Object |
Подклассы | File |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Примечание. В Adobe AIR класс File, расширяющий класс FileReference, предоставляет больше возможностей и имеет меньше ограничений по безопасности, чем сам класс FileReference.
Существуют следующие способы создания экземпляров FileReference.
- При использовании оператора
new
с конструктором FileReference:var myFileReference = new FileReference();
- Происходит при вызове метода
FileReferenceList.browse()
, который создает массив объектов FileReference.
Во время операции загрузки все свойства объекта FileReference заполняются вызовами метода FileReference.browse()
или FileReferenceList.browse()
. Во время операции загрузки свойство 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-файла приостанавливается в автономных и внешних версиях Flash Player и в AIR for 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--
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
creationDate : Date [только для чтения]
Дата создания файла на локальном диске. | FileReference | ||
creator : String [только для чтения]
Тип создателя Macintosh для файла, который используется только в версиях OS, предшествующих Mac OS X. | FileReference | ||
data : ByteArray [только для чтения]
Объект ByteArray, представляющий данные из файла, загруженного в результате успешного вызова метода load(). | FileReference | ||
extension : String [только для чтения]
Расширение имени файла. | FileReference | ||
modificationDate : Date [только для чтения]
Дата последнего изменения файла на локальном диске. | FileReference | ||
name : String [только для чтения]
Имя файла на локальном диске. | FileReference | ||
permissionStatus : String [статические] [только для чтения]
Определяет, предоставлено или нет приложению разрешение на доступ к файловой системе. | FileReference | ||
size : Number [только для чтения]
Размер файла на локальном диске в байтах. | FileReference | ||
type : String [только для чтения]
Тип файла. | FileReference |
Метод | Определено | ||
---|---|---|---|
Создает новый объект FileReference. | FileReference | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Отображает диалоговое окно выбора файлов, позволяющее пользователю выбрать файл для загрузки. | FileReference | ||
Отменяет любую текущую операцию загрузки в отношении данного объекта FileReference. | FileReference | ||
Посылает событие в поток событий. | EventDispatcher | ||
Открывает диалоговое окно, позволяющее пользователю загрузить файл с удаленного сервера. | FileReference | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Начинает загрузку локального файла, выбранного пользователем. | FileReference | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Запрашивает разрешение на доступ к файловой системе. | FileReference | ||
Открывает диалоговое окно, позволяющее пользователю сохранить файл в локальной файловой системе. | FileReference | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
Запускает загрузку файла на удаленный сервер. | FileReference | ||
Инициируют отправку файла в URL-адрес без кодировки. | FileReference | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | |||
Отправляется, когда загрузка файла прервана пользователем в диалоговом окне обзора файлов. | FileReference | |||
Отправляется, когда загрузка завершается или в ходе загрузки создается код состояния HTTP со значением 200. | FileReference | |||
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | |||
Отправляется, если вызов метода upload() или uploadUnencoded() пытается обратиться к данным через http, и Adobe AIR может обнаружить и вернуть код состояния для запроса. | FileReference | |||
Отправляется, когда при загрузке происходит ошибка и доступен код состояния HTTP, описывающий ошибку. | FileReference | |||
Отправляется в случае ошибки при загрузке. | FileReference | |||
Отправляется в начале операции отправки или загрузки. | FileReference | |||
Отправляется, когда приложение запрашивает разрешение на доступ к файловой системе. | FileReference | |||
Отправляется периодически в ходе операции загрузки или передачи файла. | FileReference | |||
Отправляется, когда путем вызова метода FileReference.upload() или FileReference.download() предпринимается попытка передать файл на сервер или получить файл с сервера, находящегося за пределами изолированной среды вызывающего объекта. | FileReference | |||
Отправляется, когда пользователь выбирает файл для загрузки в диалоговом окне обзора файлов. | FileReference | |||
Отправляется после получения с сервера данных о успешном завершении загрузки. | FileReference |
creationDate | свойство |
creationDate:Date
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Дата создания файла на локальном диске. Если объект не был заполнен, вызов с целью получения значения данного свойства возвращает значение null
.
Примечание. Если операционная система не имеет свойства creationDate
в таких случаях, CreationDate
имеет значение lastModifiedDate
.
Реализация
public function get creationDate():Date
Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse() , FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства creationDate равно null .
| |
IOError — Если информация файла недоступна, создается исключение с сообщением, регистрирующим ошибку ввода-вывода файла.
|
Связанные элементы API
creator | свойство |
creator:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Тип создателя Macintosh для файла, который используется только в версиях OS, предшествующих Mac OS X. В Windows или Linux это свойство имеет значение null
. Если объект FileReference не был заполнен, вызов с целью получения значения данного свойства возвращает значение null
.
Реализация
public function get creator():String
Выдает
IllegalOperationError — На компьютерах Macintosh при неудачном вызове метода FileReference.browse() , FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства creator равно null .
|
Связанные элементы API
data | свойство |
data:ByteArray
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Объект ByteArray, представляющий данные из файла, загруженного в результате успешного вызова метода load()
.
Реализация
public function get data():ByteArray
Выдает
IllegalOperationError — При неудачном вызове метода load() выдается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства data равно null .
| |
IOError — Если файл не открывается или не считывается или если подобная ошибка возникает при обращении к файлу, в системе создается исключение с сообщением, указывающим на ошибку ввода-вывода файла. В этом случае значение свойства data равно null .
|
Связанные элементы API
extension | свойство |
extension:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Расширение имени файла.
Расширение файла — это часть имени после последней точки («.»), не включая ее. Если в имени файла нет точки, то расширение имеет значение null
.
Примечание. Для определения типа файла следует использовать свойство extension
, а не creator
или type
. Свойства creator
и type
в данном случае несущественны. Они применяются к устаревшим версиям Mac OS.
Реализация
public function get extension():String
Выдает
IllegalOperationError — Если ссылка не инициализирована.
|
modificationDate | свойство |
modificationDate:Date
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Player 9 |
Дата последнего изменения файла на локальном диске. Если объект FileReference не был заполнен, вызов с целью получения значения данного свойства возвращает значение null
.
Реализация
public function get modificationDate():Date
Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse() , FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства modificationDate равно null .
| |
IOError — Если информация файла недоступна, создается исключение с сообщением, регистрирующим ошибку ввода-вывода файла.
|
Связанные элементы API
name | свойство |
name:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем.
|
Связанные элементы API
permissionStatus | свойство |
size | свойство |
size:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Размер файла на локальном диске в байтах.
Примечание. В исходной версии ActionScript 3.0 свойство size
было определено как объект uint, поддерживавший файлы размером до 4 Гб. Сейчас он реализуется как объект Number для поддержки файлов большого размера.
Реализация
public function get size():Number
Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse() , FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем.
| |
IOError — Если файл не открывается или не считывается или если подобная ошибка возникает при обращении к файлу, в системе создается исключение с сообщением, указывающим на ошибку ввода-вывода файла.
|
Связанные элементы API
type | свойство |
type:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Тип файла.
В операционной системе Windows или Linux это свойство указывает расширение файла. В Macintosh это свойство представляет собой четырехзначный тип файла, используемый только в версиях Mac OS, предшествующих Mac OS X. Если объект FileReference не был заполнен, вызов с целью получения значения данного свойства возвращает значение null
.
Для Windows, Linux и Mac OS X расширение файла (то есть, часть свойства name
после последней точки (.)), определяет тип файла.
Реализация
public function get type():String
Выдает
IllegalOperationError — При неудачном вызове метода FileReference.browse() , FileReferenceList.browse() или FileReference.download() создается исключение, сопровождаемое сообщением о том, что функции были вызваны в неправильном порядке или предыдущий вызов закончился сбоем. В этом случае значение свойства type равно null .
|
Связанные элементы API
FileReference | () | Конструктор |
public function FileReference()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает новый объект FileReference. В заполненном состоянии объект FileReference представляет собой файл на локальном диске пользователя.
Связанные элементы API
browse | () | метод |
public function browse(typeFilter:Array = null):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отображает диалоговое окно выбора файлов, позволяющее пользователю выбрать файл для загрузки. Это диалоговое окно принадлежит операционной системе пользователя. Пользователь может выбрать файл на локальном компьютере или в других системах (например, с помощью UNC-пути в операционной системе Windows).
Примечание. Класс File, доступный в Adobe AIR, включает методы для вызова более специфических системных диалогов для выбора файлов. Это методы File.browseForDirectory()
, File.browseForOpen()
, File.browseForOpenMultiple()
и File.browseForSave()
.
Когда вы вызываете этот метод и пользователь успешно выбирает файл, свойства данного объекта FileReference заполняются свойствами выбранного файла. При каждом последующем вызове метода FileReference.browse()
свойства объекта FileReference соотносятся с файлом, который пользователь выбирает в диалоговом окне. Единовременно может выполняться только один сеанс browse()
или download()
(так как в любой момент времени можно вызвать только одно диалоговое окно).
С помощью параметра typeFilter
можно определить, какие файлы будут отображаться в диалоговом окне.
В приложении Flash Player 10 и Flash Player 9 Update 5 этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает исключение Error.
Примите во внимание эти особенности, поскольку в приложение 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 ограничение на одновременное выполнение нескольких операций не действует.
В Adobe AIR диалоговое окно выбора файлов не всегда отображается на переднем плане относительно окон, которые принадлежат другому окну (окна, свойство owner
которых имеет непустое значение). Для предотвращения проблем, связанных с порядком окон, перед вызовом этого метода скройте подчиненные окна.
Параметры
typeFilter:Array (default = null ) — Массив экземпляров FileFilter, который используется для фильтрации файлов, отображенных в диалоговом окне. Если данный параметр пропущен, то отображаются все файлы. Дополнительные сведения см. в описании класса FileFilter.
|
Boolean — Возвращает значение true при наличии допустимых параметров и открытии диалогового окна просмотра файлов.
|
События
select: — Отправляется, когда пользователь успешно выбирает элемент в окне выбора файлов.
| |
cancel: — Отправляется, когда пользователь закрывает окно выбора файлов для загрузки.
|
Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Настройка в файле пользователя mms.cfg запрещает данную операцию.
| |
ArgumentError — Если массив typeFilter содержит неправильно сформатированные объекты FileFilter, создается соответствующее исключение. Сведения о правильном формате для объектов FileFilter см. в описании класса FileFilter.
| |
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.
|
Связанные элементы API
cancel event
FileReference.download()
FileReferenceList.browse()
File.browseForDirectory()
File.browseForOpen()
File.browseForOpenMultiple()
File.browseForSave()
cancel | () | метод |
public function cancel():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отменяет любую текущую операцию загрузки в отношении данного объекта FileReference. Вызов данного метода не приводит к отправке события cancel
. Оно отправляется только в тот момент, когда пользователь отменяет операцию путем закрытия диалогового окна загрузки файлов.
download | () | метод |
public function download(request:URLRequest, defaultFileName:String = null):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 Developer's Guide (руководстве разработчика по ActionScript 3.0).
Примечание. Если ваш сервер требует аутентификации пользователей, только Flash-приложения, запущенные в обозревателе (то есть с использованием дополнительного модуля обозревателя или элемента управления ActiveX), могут представить пользователю диалоговое окно для ввода имени пользователя и пароля (для аутентификации) и только потом перейти к загрузкам. При загрузке с помощью дополнительного модуля или элемента управления ActiveX, а также при загрузке данных посредством автономного или внешнего проигрывателя происходит сбой передачи файлов.
При использовании данного метода необходимо продумать модель безопасности проигрывателя Flash Player:
- Операции загрузки запрещены, если вызывающий SWF-файл находится в ненадежной локальной изолированной среде.
- По умолчанию, взаимодействие между изолированными средами запрещено. Чтобы обеспечить доступ к ресурсу, web-сайт может добавить файл политик для URL.
- Можно запретить использование SWF-файлом этого метода путем установки параметра
allowNetworking
для теговobject
иembed
на странице HTML, содержащей SWF-содержимое. - В приложении Flash Player 10 и Flash Player 9 Update 5 этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает исключение Error.
Однако в Adobe AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде безопасности application
(содержимое, установленное с приложением AIR).
Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.
При загрузке с помощью этого метода файл помечается как загруженный в тех операционных системах, которые поддерживают пометку.
- ОС Windows XP с пакетом обновления SP2 или более поздним и ОС Windows Vista
- ОС Mac OS 10.5 и более поздних версий
Некоторые операционные системы, такие как Linux, не помечают загруженные файлы.
Примите во внимание эти особенности, поскольку в приложение 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 ограничение на одновременное выполнение нескольких операций не действует.
В Adobe AIR диалоговое окно загрузки не всегда отображается на переднем плане относительно окон, которые принадлежат другому окну (окна, свойство owner
которых имеет непустое значение). Для предотвращения проблем, связанных с порядком окон, перед вызовом этого метода скройте подчиненные окна.
Параметры
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: — Отправляется при запуске операции загрузки.
| |
progress: — Отправляется периодически в ходе операции загрузки файла.
| |
complete: — Отправляется после успешного завершения операции загрузки файла.
| |
cancel: — Отправляется, когда пользователь закрывает диалоговое окно.
| |
select: — Отправляется, когда пользователь выбирает в диалоговом окне файл для загрузки.
| |
securityError: — Отправляется при сбое загрузки вследствие ошибки в системе безопасности.
| |
ioError: — Отправляется по одной из причин, перечисленных ниже.
|
Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра (единовременно может быть запущен только один сеанс просмотра файлов). 2) Значение, переданное request , не содержит допустимый путь или протокол. 3) Имя загружаемого файла содержит запрещенные символы. 4) Настройка в файле пользователя mms.cfg запрещает данную операцию.
| |
SecurityError — Локальное ненадежное содержимое изолируется от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим на отсутствие доступа к имени файла или URL-адресу вследствие локальных ограничений в системе безопасности файлов.
| |
SecurityError — Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе «Ограничение API-интерфейсов сетевого подключения» в руководстве ActionScript 3.0 Developer's Guide (руководстве разработчика по 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 — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.
|
Связанные элементы API
FileReference.browse()
FileReferenceList.browse()
FileReference.upload()
FileReference.save()
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Начинает загрузку локального файла, выбранного пользователем. Несмотря на то, что Flash Player не имеет ограничений в отношении размера передаваемых, загружаемых или сохраняемых файлов, гарантированно проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ. Для содержимого, воспроизводимого в проигрывателе Flash Player, необходимо вызвать метод FileReference.browse()
или FileReferenceList.browse()
перед вызовом метода load()
. Однако содержимое, воспроизводимое в изолированной программной среде приложения AIR, может вызывать метод load()
объекта File без необходимости предварительного вызова метода browse()
. (Класс File в AIR является расширением класса FileReference.)
Прослушиватели получают события для определения состояния, успешности или сбоя загрузки. Несмотря на то, что с помощью объекта FileReferenceList можно предоставить пользователям возможность выбирать для загрузки сразу несколько файлов, загружать эти файлы следует по одному. Для этого надо выполнить итерации в отношении массива FileReferenceList.fileList
объектов FileReference.
Adobe AIR также включает класс FileStream, который предоставляет больше возможностей для чтения файлов.
Функции FileReference.upload()
, FileReference.download()
, FileReference.load()
и FileReference.save()
не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет область приложения, любая незавершенная операция в отношении данного объекта будет отменена в момент его выхода из области приложения. Следите за тем, чтобы объект FileReference оставался в области приложения на всем протяжении операции отправки, загрузки или сохранения.
При успешном завершении загрузки файла его содержимое сохраняется как массив байтов в свойстве data
объекта FileReference.
Применяются следующие правила безопасности:
- Операции загрузки запрещены, если вызывающий SWF-файл находится в ненадежной локальной изолированной среде.
- По умолчанию, взаимодействие между изолированными средами запрещено. Чтобы обеспечить доступ к ресурсу, web-сайт может добавить файл междоменной политики.
- Можно запретить использование файлом этого метода путем установки параметра
allowNetworking
для теговobject
иembed
на странице HTML, содержащей SWF-содержимое.
Однако эти ограничения не применимы к содержимому AIR в изолированной программной среде приложения.
Обратите внимание, что при публикации в приложении Flash Player 10 или AIR 1.5 одновременно может быть активна только одна из следующих операций: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. В противном случае в приложении возникает ошибка времени выполнения (код 2174). Используйте метод FileReference.cancel()
для остановки выполняющейся операции. Это ограничение применяется только к Flash Player 10 и AIR 1.5. В предыдущих версиях Flash Player или AIR отсутствует ограничение на одновременное выполнение нескольких операций.
В Adobe AIR диалоговое окно выбора файлов не всегда отображается на переднем плане относительно окон, которые принадлежат другому окну (окна, свойство owner
которых имеет непустое значение). Для предотвращения проблем, связанных с порядком окон, перед вызовом этого метода скройте подчиненные окна.
События
open: — Отправляется в начале операции загрузки.
| |
progress: — Отправляется периодически в ходе операции загрузки файла.
| |
complete: — Отправляется после успешного завершения операции загрузки файла.
| |
ioError: — Вызывается при сбое загрузки вследствие ошибки ввода-вывода, возникшей во время считывания или записи файла приложением.
|
Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Настройка в файле пользователя mms.cfg запрещает данную операцию.
| |
MemoryError — Данная ошибка возникает в том случае, если приложение не может выделить память для указанного файла. Слишком большой файл или очень мало доступной памяти.
|
Связанные элементы API
FileReferenceList.browse()
FileReference.data
FileReferenceList.fileList
FileReference.save()
FileStream
Пример ( Использование этого примера )
var buttonShape:Shape = new Shape(); buttonShape.graphics.beginFill(0x336699); buttonShape.graphics.drawCircle(50, 50, 25); var button = new SimpleButton(buttonShape, buttonShape, buttonShape, buttonShape); addChild(button); var fileRef:FileReference= new FileReference(); button.addEventListener(MouseEvent.CLICK, onButtonClick); function onButtonClick(e:MouseEvent):void { fileRef.browse([new FileFilter("Images", "*.jpg;*.gif;*.png")]); fileRef.addEventListener(Event.SELECT, onFileSelected); } function onFileSelected(e:Event):void { fileRef.addEventListener(Event.COMPLETE, onFileLoaded); fileRef.load(); } function onFileLoaded(e:Event):void { var loader:Loader = new Loader(); loader.loadBytes(e.target.data); addChild(loader); }
requestPermission | () | метод |
public function requestPermission():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 24.0 |
Запрашивает разрешение на доступ к файловой системе.
События
PermissionStatus: — отправляется, когда запрашиваемое разрешение предоставляется или не предоставляется пользователем.
|
save | () | метод |
public function save(data:*, defaultFileName:String = null):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Открывает диалоговое окно, позволяющее пользователю сохранить файл в локальной файловой системе. Несмотря на то, что Flash Player не имеет ограничений на размер отправляемых, загружаемых или сохраняемых файлов, официально проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ.
Сначала метод save()
открывает диалоговое окно операционной системы, в котором пользователь должен ввести имя файла и выбрать место на локальном компьютере для сохранения этого файла. После того как пользователь выберет нужное место и подтвердит операцию сохранения (например, путем нажатия кнопки «Сохранить»), начнется процесс сохранения. Прослушиватели получают события для определения состояния, успешности или сбоя операции сохранения. Для определения состояния диалогового окна и операции сохранения после вызова метода save()
, ваш код должен предусматривать прослушивание таких событий как cancel
, open
, progress
и complete
.
Adobe AIR также включает класс FileStream, который предоставляет больше возможностей для сохранения файлов в локальной системе
Функции FileReference.upload()
, FileReference.download()
, FileReference.load()
и FileReference.save()
не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет область приложения, любая незавершенная операция в отношении данного объекта будет отменена в момент его выхода из области приложения. Следите за тем, чтобы объект FileReference оставался в области приложения на всем протяжении операции отправки, загрузки или сохранения.
При успешном сохранении файла свойства объекта FileReference заполняются свойствами локального файла. Событие complete
отправляется при успешном завершении операции сохранения.
Единовременно может выполняться только один сеанс browse()
или save()
(так как в любой момент времени можно вызвать только одно диалоговое окно).
В приложении Flash Player этот метод можно успешно вызвать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает исключение Error. Это ограничение не применимо к содержимому AIR в изолированной программной среде приложения.
В Adobe AIR диалоговое окно сохранения не всегда отображается на переднем плане относительно окон, которые принадлежат другому окну (окна, свойство owner
которых имеет непустое значение). Для предотвращения проблем, связанных с порядком окон, перед вызовом этого метода скройте подчиненные окна.
Параметры
data:* — Сохраняемые данные. Данные могут быть представлены в одном из форматов и обработаны соответствующим образом:
| |
defaultFileName:String (default = null ) — Имя файла, отображаемое по умолчанию в диалоговом окне сохранения файла. Данная строка не должна содержать следующие символы: / \ : * ? " < > | %
При вызове этого метода объектом File именем файла будет являться имя файла, на который ссылается объект File. (Класс File в AIR является расширением класса FileReference.) |
События
open: — Отправляется при запуске операции загрузки.
| |
progress: — Отправляется периодически в ходе операции загрузки файла.
| |
complete: — Отправляется после успешного завершения операции загрузки файла.
| |
cancel: — Отправляется, когда пользователь закрывает диалоговое окно.
| |
select: — Отправляется, когда пользователь выбирает в диалоговом окне файл для загрузки.
| |
ioError: — Отправляется, если при считывании или передаче файла возникает ошибка ввода-вывода.
|
Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра (единовременно может быть запущен только один сеанс просмотра файлов). 2) Имя загружаемого файла содержит запрещенные символы. 3) Настройка в файле пользователя mms.cfg запрещает данную операцию.
| |
ArgumentError — Если параметр data не относится к типу ByteArray и не имеет метода toString() , создается исключение. Если параметр data не относится к типу XML и не имеет метода toXMLString() , создается исключение.
| |
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.
| |
MemoryError — Данная ошибка возникает в том случае, если проигрыватель Flash Player не может выделить память для указанного файла. Слишком большой файл или очень мало доступной памяти.
|
Связанные элементы API
FileReference.load()
FileReference.data
FileReference.upload()
FileReference.download()
FileStream
Пример ( Использование этого примера )
MyTextField
) и нередактируемое текстовое поле (MyButtonField
), которое будет выполнять функцию кнопки и реагировать на щелчок мыши. Пользователь может отредактировать содержимое первого текстового поля, а затем нажать кнопку, чтобы сохранить измененное содержимое в локальном файле. Обработчик события щелчка мыши clickhandler
использует метод FileReference.save()
(для объекта FileReference с именем MyFileReference
), чтобы открыть диалоговое окно в текущей операционной системе, чтобы пользователь мог сохранить содержимое в локальный файл с указанным именем.
var MyTextField:TextField = new TextField(); var MyButtonField:TextField = new TextField(); var MyFile:FileReference = new FileReference(); MyTextField.border = true; MyTextField.type = TextFieldType.INPUT; MyButtonField.background = true; MyButtonField.backgroundColor = 0x339933; MyButtonField.x = 150; MyButtonField.height = 20; MyButtonField.text = "Click here to save"; addChild(MyTextField); addChild(MyButtonField); MyButtonField.addEventListener(MouseEvent.CLICK, clickhandler); function clickhandler(e:MouseEvent): void { MyFile.save(MyTextField.text); }
upload | () | метод |
public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Запускает загрузку файла на удаленный сервер. Несмотря на то, что Flash Player не имеет ограничений на размер загружаемых файлов, официально проигрыватель поддерживает обработку информации, объем которой не превышает 100 МБ.Перед тем как вызвать данный метод, следует вызвать метод FileReference.browse()
или FileReferenceList.browse()
.
В Adobe AIR для класса File, который расширяет класс FileReference, можно использовать метод upload()
для загрузки любого файла. Для класса FileReference (во Flash Player), пользователь сначала должен выбрать файл.
Прослушиватели получают события для определения состояния, успешного выполнения или сбоя загрузки. Несмотря на то, что с помощью объекта FileReferenceList можно предоставить пользователям возможность выбирать для загрузки сразу несколько файлов, загружать эти файлы следует по одному. Для этого надо выполнить итерации в отношении массива FileReferenceList.fileList
объектов FileReference.
Функции FileReference.upload()
и FileReference.download()
не являются блокирующими. Эти функции возвращаются после вызова до завершения операции передачи файла. Кроме этого, если объект FileReference покинет зону действия, любая незавершенная отправка или загрузка в отношении данного объекта будет отменена в момент его выхода из зоны действия. Следите за тем, чтобы объект FileReference оставался в области действия на всем протяжении операции загрузки.
Файл загружается на URL-адрес, указанный в параметре url
. В качестве URL-адреса должен выступать сценарий сервера, сконфигурированный на принятие загружаемых данных. Проигрыватель Flash Player загружает файлы с помощью метода POST
по протоколу HTTP. Сценарий сервера, обрабатывающий загрузку, должен ожидать запрос POST
со следующими элементами:
Content-Type
со значениемmultipart/form-data
Content-Disposition
, у которого атрибутname
имеет по умолчанию значениеFiledata
, а атрибутfilename
указывает имя исходного файла.- Двоичное содержимое файла
Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе «Ограничение API-интерфейсов сетевого подключения» в руководстве ActionScript 3.0 Developer's Guide (руководстве разработчика по 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:
- Операции загрузки запрещены, если вызывающий SWF-файл находится в ненадежной локальной изолированной среде.
- По умолчанию, взаимодействие между изолированными средами запрещено. Чтобы обеспечить доступ к ресурсу, web-сайт может добавить файл политик для URL.
- Можно запретить использование SWF-файлом этого метода путем установки параметра
allowNetworking
для теговobject
иembed
на странице HTML, содержащей SWF-содержимое.
Однако в Adobe AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде безопасности application
(содержимое, установленное с приложением AIR).
Дополнительные сведения о безопасности см. в разделе центра разработчиков 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 ограничение на одновременное выполнение нескольких операций не действует.
Параметры
request:URLRequest — Объект URLRequest. Свойство url объекта URLRequest должно содержать URL-адрес сценария сервера, настроенного на обработку операции отправки с помощью HTTP-вызовов POST . В некоторых обозревателях URL-строки имеют ограниченную длину. Строки длиной свыше 256 символов могут не обрабатываться в некоторых обозревателях и серверах. Если значение этого параметра равно null , создается исключение. Свойство requestHeaders объекта URLRequest игнорируется. Пользовательские заголовки запросов HTTP не поддерживаются ни при отправке, ни при загрузке данных.
Для URL-адреса может использоваться протокол HTTP или HTTPS (для защищенной передачи данных). Для использования HTTPS следует в параметре Для отправки параметров | |
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: — Отправляется в начале операции отправки.
| |
progress: — Отправляется периодически в ходе операции отправки файла.
| |
complete: — Отправляется после успешного завершения операции отправки файла.
| |
uploadCompleteData: — Отправляется при получении данных с сервера после успешной отправки файла.
| |
securityError: — Отправляется при сбое отправки вследствие нарушений в системе безопасности.
| |
httpStatus: — Отправляется при возникновении сбоя отправки в результате ошибки протокола HTTP.
| |
httpResponseStatus: — Операция отправки успешно завершается и сервер возвращает URL и заголовки ответа.
| |
ioError: — Вызывается при любой из следующих ситуаций.
|
Выдает
SecurityError — Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим имя недоступного локального файла и URL-адрес.
| |
SecurityError — Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе «Ограничение API-интерфейсов сетевого подключения» в руководстве ActionScript 3.0 Developer's Guide (руководстве разработчика по 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 .
|
Связанные элементы API
uploadUnencoded | () | метод |
public function uploadUnencoded(request:URLRequest):void
Версии среды выполнения: | AIR 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 следует в параметре Для отправки параметров |
События
open: — Отправляется в начале операции отправки.
| |
progress: — Отправляется периодически в ходе операции отправки файла.
| |
complete: — Отправляется после успешного завершения операции отправки файла.
| |
uploadCompleteData: — Отправляется при получении данных с сервера после успешной отправки файла.
| |
securityError: — Отправляется при сбое отправки вследствие нарушений в системе безопасности.
| |
httpStatus: — Отправляется при возникновении сбоя отправки в результате ошибки протокола HTTP.
| |
httpResponseStatus: — Операция отправки успешно завершается и сервер возвращает URL и заголовки ответа.
| |
ioError: — Вызывается при любой из следующих ситуаций.
|
Выдает
SecurityError — Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Чтобы избежать этой ситуации, следует переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный. При создании данное исключение сопровождается сообщением, указывающим имя недоступного локального файла и URL-адрес.
| |
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Параметр URL не является допустимым путем или протоколом. При отправке файла должен использоваться протокол НТТР.
|
Связанные элементы API
cancel | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.CANCEL
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда загрузка файла прервана пользователем в диалоговом окне обзора файлов. Проигрыватель Flash Player не отправляет это событие, если пользователь отменяет загрузку каким-либо другим способом (путем закрытия браузера или остановки текущего приложения).
КонстантаEvent.CANCEL
определяет значение свойства type
объекта события cancel
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда загрузка завершается или в ходе отправки создается код состояния HTTP со значением 200. При загрузке файла это событие отправляется в тот момент, когда Flash Player или Adobe AIR завершает загрузку всего файла на диск. При загрузке файла это событие отправляется после того, как Flash Player или Adobe AIR получает от принимающего сервера код состояния НТТР со значением 200.
КонстантаEvent.COMPLETE
определяет значение свойства type
объекта complete
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
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); } } }
Связанные элементы API
httpResponseStatus | Событие |
flash.events.HTTPStatusEvent
свойство HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, AIR 1.0 |
Отправляется, если вызов метода upload()
или uploadUnencoded()
пытается обратиться к данным через HTTP, и Adobe AIR может обнаружить и вернуть код состояния для запроса.
httpStatus
, событие httpResponseStatus
доставляется до получения данных ответа. Таким образом, в событие httpResponseStatus
входят значения свойств responseHeaders
и responseURL
(которые для события httpStatus
имеют значение undefined.) Обратите внимание на то, что httpResponseStatus
(при наличии такового) будет отправляться до (как дополнение) любого события complete
или error
.
Константа HTTPStatusEvent.HTTP_RESPONSE_STATUS
определяет значение свойства type
объекта события httpResponseStatus
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
responseURL | URL-адрес, с которого был получен ответ. |
responseHeaders | Заголовки ответа, возвращаемые в ответе, представляют собой массив объектов URLRequestHeader. |
status | Код состояния HTTP, возвращенный сервером. |
redirected | Является ли ответ ли результатом перенаправления. |
target | Сетевой объект, получающий код состояния НТТР. |
Связанные элементы API
httpStatus | Событие |
flash.events.HTTPStatusEvent
свойство HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда при загрузке происходит ошибка и доступен код состояния HTTP, описывающий ошибку. Отправляется событие httpStatus
, а после него сразу же отправляется событие ioError
.
Событие httpStatus
отправляется только в случае сбоя операции загрузки. Для содержимого, запущенного в проигрывателе Flash Player, это событие не применимо для сбоя загрузки. Если сбой загрузки происходит по причине ошибки HTTP, данная ошибка представляется как ошибка ввода-вывода.
HTTPStatusEvent.HTTP_STATUS
определяет значение свойства type
объекта события httpStatus
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
status | Код состояния HTTP, возвращенный сервером. |
target | Сетевой объект, получающий код состояния НТТР. |
Связанные элементы API
ioError | Событие |
flash.events.IOErrorEvent
свойство IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется в случае ошибки при загрузке. Сбой при передачи файла может возникнуть по одной из следующих причин:
- Ошибка ввода-вывода возникает в тот момент, когда проигрыватель считывает, записывает или передает файл.
- SWF-файл пытается загрузить файл на сервер, требующий проверки подлинности (имя пользователя и пароль). В процессе отправки Flash Player или Adobe AIR не дает пользователям возможности ввести пароли. Если SWF-файл попытается передать файл на сервер, требующий проверки подлинности, произойдет сбой отправки.
- SWF-файл пытается загрузить файл с сервера, требующего проверки подлинности, в рамках автономного или внешнего проигрывателя. Во время загрузки автономные и внешние проигрыватели не обеспечивают пользователей возможностью ввода паролей. Если SWF-файл в этих проигрывателях пытается загрузить файл с сервера, требующего проверки подлинности, то происходит сбой загрузки. Загрузка файла может быть успешно выполнена только в элементе управления ActiveX, дополнительных модулях обозревателей и в среде выполнения Adobe AIR.
- Значение, переданное параметру
url
в методеupload()
, содержит недопустимый протокол. Допустимые протоколы: HTTP и HTTPS.
Важно! Только приложения, выполняемые в браузере (то есть использующие дополнительный модуль браузера или элемент управления ActiveX) и содержимое, выполняемое в Adobe AIR, могут сначала показывать диалоговое окно с запросом имени пользователя и пароля для проверки подлинности и только после этого открывать окно загрузки. Для отправки данных с помощью версии Flash Player, подключаемой к обозревателю или использующей элемент управления ActiveX, или для загрузки с помощью автономного или внешнего проигрывателя, отправка файлов заканчивается ошибкой.
Задает значение свойстваtype
для объекта события ioError
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
errorID | Ссылочный номер, связываемый с конкретной ошибкой (только AIR). |
target | Сетевой объект, с которым произошла ошибка ввода/вывода. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
Связанные элементы API
open | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.OPEN
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется в начале операции отправки или загрузки.
КонстантаEvent.OPEN
определяет значение свойства type
объекта события open
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
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); } } }
Связанные элементы API
permissionStatus | Событие |
flash.events.PermissionEvent
свойство PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 24.0 |
Отправляется, когда приложение запрашивает разрешение на доступ к файловой системе. Проверяет значение свойства status
, чтобы определить, предоставлено разрешение или нет
Связанные элементы API
progress | Событие |
flash.events.ProgressEvent
свойство ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется периодически в ходе операции загрузки или передачи файла. Событие progress
отправляется в процессе передачи проигрывателем Flash Player байтов на сервер. Оно периодически отправляется в течение всей операции передачи, даже если эта операция в конечном итоге не становится успешной. Чтобы определить, когда произойдет фактическое успешное завершение передачи файла, следует ожидать появления события complete
.
В некоторых случаях события progress
не могут быть получены. Например, при отправке файла очень небольшого размера или при очень быстрой отправке или загрузке событие progress
может быть не передано.
Невозможно определить состояние процесса загрузки файла на платформах Macintosh более ранней версии, чем OS X 10.3. Событие progress
вызывается в течение операции загрузки, однако значением свойства bytesLoaded
события progress является -1, что указывает на невозможность определения состояния.
type
для объекта события progress
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
bytesLoaded | Число элементов или байтов, загруженных на момент обработки события прослушивателем. |
bytesTotal | Общее число элементов или байтов, которые в итоге будут получены в случае успешного завершения загрузки. |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
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); } } }
Связанные элементы API
securityError | Событие |
flash.events.SecurityErrorEvent
свойство SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда путем вызова метода FileReference.upload()
или FileReference.download()
предпринимается попытка передать файл на сервер или получить файл с сервера, находящегося за пределами изолированной среды вызывающего объекта. Значением текстового свойства, описывающего возникшую специфическую ошибку, обычно является securitySandboxError
. Возможно, вызывающий SWF-файл произвел попытку обращения к SWF-файлу за пределами своего домена, на что у него нет соответствующего разрешения. Для исправления данной ошибки можно использовать файл политики для URL.
В Adobe AIR эти ограничения по безопасности не применяются к содержимому в изолированной программной среде безопасности приложения.
В Adobe AIR эти ограничения по безопасности не применяются к содержимому в изолированной программной среде безопасности приложения.
КонстантаSecurityErrorEvent.SECURITY_ERROR
определяет значение свойства type
для объекта события securityError
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, сообщающий об ошибке безопасности. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
Связанные элементы API
select | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.SELECT
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда пользователь выбирает файл для загрузки в диалоговом окне обзора файлов. (Это диалоговое окно открывается при вызове метода FileReference.browse()
, FileReferenceList.browse()
или FileReference.download()
.) Когда пользователь выбирает файл и подтверждает эту операцию (например, путем нажатия кнопки «ОК»), происходит заполнение свойств объекта 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
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Отправляется после получения с сервера данных об успешном завершении загрузки. Это событие не отправляется, если сервер не возвращает данные.
Определяет значение свойстваtype
объекта события uploadCompleteData
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
data | Необработанные данные, возвращенные сервером после успешной отправки файла. |
target | Объект FileReference, получающий данные после успешной отправки. |
Примечание. Чтобы запустить данный пример, следует изменить свойство uploadURL.url, чтобы вместо фиктивного адреса в этом примере оно указывало фактический (действующий) URL-адрес. URL-адрес должен указывать на файл yourUploadHandlerScript.cfm
в корневом web-каталоге указанного 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); } } }
Tue Jun 12 2018, 11:34 AM Z