Pakiet | flash.net |
Klasa | public class FileReference |
Dziedziczenie | FileReference EventDispatcher Object |
Podklasy | File |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Uwaga: W środowisku Adobe AIR klasa File, która rozszerza klasę FileReference, udostępnia więcej możliwości i narzuca mniej ograniczeń dotyczących bezpieczeństwa niż klasa FileReference.
Instancje FileReference można utworzyć w następujący sposób:
- Za pomocą operatora
new
z konstruktorem FileReference:var myFileReference = new FileReference();
- Przez wywołanie metody
FileReferenceList.browse()
, która tworzy tablicę obiektów FileReference.
W czasie trwania operacji upload wszystkie właściwości obiektu FileReference są wypełniane przez wywołania metody FileReference.browse()
lub FileReferenceList.browse()
. W czasie trwania operacji download właściwość name
jest wypełniana w momencie wywołania zdarzenia select
; wszystkie pozostałe właściwości są wypełniane w momencie wywołania zdarzenia complete
.
Metoda browse()
otwiera okno dialogowe systemu operacyjnego, które monituje użytkownika o wybranie pliku do wysłania. Metoda FileReference.browse()
pozwala użytkownikowi na wybranie pojedynczego pliku; metoda FileReferenceList.browse()
pozwala użytkownikowi na wybranie wielu plików. Po pomyślnym wywołaniu metody browse()
należy wywoływać metodę FileReference.upload()
w celu wysyłania po jednym pliku naraz. Metoda FileReference.download()
monituje użytkownika o lokalizację, której zapisany zostanie plik i inicjuje pobieranie ze zdalnego adresu URL.
Klasy FileReference oraz FileReferenceList nie zezwalają na ustawienie domyślnej lokalizacji pliku dla okna dialogowego, które zostało wygenerowane przez metody browse()
lub download()
. Domyślną lokalizacją wyświetlaną w oknie dialogowym jest ostatnio przeglądany folder, jeśli można tę lokalizację określić, lub pulpit. Klasy nie zezwalają na odczyt z lub zapis do przesyłanego pliku. Nie zezwalają, aby plik SWF, który zainicjował wysyłanie lub pobieranie, uzyskał dostęp do wysyłanego lub pobieranego pliku lub jego lokalizacji na dysku użytkownika.
Klasy FileReference oraz FileReferenceList nie zapewniają także metod do uwierzytelniania. Z serwerów, które wymagają uwierzytelniania, można pobierać pliki za pomocą wtyczek przeglądarki Flash® Player, ale ich wysyłanie (we wszystkich odtwarzaczach) i pobieranie (w samodzielnym lub zewnętrznym odtwarzaczu) kończy się niepowodzeniem. Wykrywa zdarzenia FileReference w celu określenia, czy operacje zakończyły się powodzeniem i aby obsłużyć błędy.
Dla treści uruchamianych w programie Flash Player lub aplikacji Adobe AIR uruchamianych na zewnątrz obszaru izolowanego aplikacji, operacje pobierania i wysyłania mogą uzyskać dostęp do plików jedynie wewnątrz swojej własnej domeny oraz wewnątrz domen określonych w pliku reguł URL. Umieść plik reguł na serwerze plików, jeśli treść inicjująca wysyłanie lub pobieranie nie pochodzi z tej samej domeny co serwer plików.
Należy zauważyć, że ze względu na nową funkcjonalność dodaną do programu Flash Player podczas publikowania do Flash Player 10 jednocześnie może być aktywna tylko jedna z następujących operacji: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. W przeciwnym wypadku program Flash Player zgłosi błąd wykonania (kod 2174). Aby zatrzymać operację w toku, należy użyć metody FileReference.cancel()
. To ograniczenie obowiązuje jedynie w programie Flash Player 10. Ograniczenie jednoczesnego wykonywania wielu operacji nie dotyczy poprzednich wersji programu Flash Player.
Podczas wykonywania wywołań metod FileReference.browse()
, FileReferenceList.browse()
lub FileReference.download()
odtwarzanie pliku SWF jest wstrzymywane w autonomicznych i zewnętrznych wersjach programu Flash Player i w środowisku AIR w systemach Linux i Mac OS X 10.1 i starszych wersjach.
Poniższy przykład żądania HTTP metodą POST
jest wysyłany z programu Flash Player do serwerowego skryptu, jeśli żaden parametr nie został określony:
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--
Program Flash Player wysyła poniższe żądanie HTTP metodą POST
, jeśli użytkownik określi parametry "api_sig"
, "api_key"
oraz "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--
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
creationDate : Date [tylko do odczytu]
Data utworzenia pliku na dysku lokalnym. | FileReference | ||
creator : String [tylko do odczytu]
Typ kreatora platformy Macintosh dla pliku, z którego można korzystać w wersjach systemu Mac OS wcześniejszych niż Mac OS X. | FileReference | ||
data : ByteArray [tylko do odczytu]
Obiekt ByteArray reprezentujący dane z załadowanego pliku po pomyślnym wywołaniu metody load(). | FileReference | ||
extension : String [tylko do odczytu]
Rozszerzenie nazwy pliku. | FileReference | ||
modificationDate : Date [tylko do odczytu]
Data ostatniej modyfikacji pliku na dysku lokalnym. | FileReference | ||
name : String [tylko do odczytu]
Nazwa pliku na dysku lokalnym. | FileReference | ||
permissionStatus : String [statyczny] [tylko do odczytu]
Sprawdź, czy system otrzymał pozwolenie na dostęp do systemu plików. | FileReference | ||
size : Number [tylko do odczytu]
Rozmiar pliku na dysku lokalnym (w bajtach). | FileReference | ||
type : String [tylko do odczytu]
Typ pliku. | FileReference |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy nowy obiekt typu FileReference. | FileReference | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Wyświetla okno przeglądania plików, w którym użytkownik może wybrać plik do wysłania. | FileReference | ||
Anuluje wszystkie trwające operacje upload lub download tego obiektu FileReference. | FileReference | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Otwiera okno dialogowe, które pozwala użytkownikowi pobrać pliki ze zdalnego serwera. | FileReference | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Rozpoczyna ładowanie pliku lokalnego wybranego przez użytkownika. | FileReference | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Wysyła żądanie udzielenia pozwolenia na dostęp do systemu plików. | FileReference | ||
Otwiera okno dialogowe, które umożliwia użytkownikom zapianie pliku w lokalnym systemie plików. | FileReference | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
Rozpoczyna wysyłanie pliku na serwer zdalny. | FileReference | ||
Inicjuje wysyłanie pliku pod adres URL bez żadnego kodowania. | FileReference | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
Wywoływane, gdy użytkownik anuluje wysyłanie lub pobieranie pliku w oknie dialogowym przeglądania plików. | FileReference | |||
Dysponowana po zakończeniu pobierania lub wtedy, gdy podczas wysyłania danych zostanie wygenerowany kod stanu HTTP 200. | FileReference | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływane, jeśli wywołanie metody upload() lub uploadUnencoded() skutkuje próbą uzyskania dostępu do danych za pomocą protokołu HTTP i aplikacja Adobe AIR ma możliwość wykrycia i zwrócenia kodu stanu żądania. | FileReference | |||
Wywoływana, gdy wysłanie danych nie powiedzie się i będzie dostępny kod stanu HTTP opisujący błąd. | FileReference | |||
Dysponowana, gdy pobieranie lub wysyłanie danych nie powiedzie się. | FileReference | |||
Dysponowana po rozpoczęciu operacji wysyłania lub pobierania. | FileReference | |||
Rozsyłane, gdy aplikacja zażąda pozwolenia na dostęp do systemu plików. | FileReference | |||
Dysponowana okresowo podczas operacji wysyłania lub wczytywania pliku. | FileReference | |||
Wywoływane, kiedy wywołanie metody FileReference.upload() lub FileReference.download() skutkuje próbą wysłania pliku na serwer lub pobrania pliku z serwera, który działa na zewnątrz obszaru izolowanego kodu wywołującego. | FileReference | |||
Dysponowana, gdy użytkownik wybierze w oknie przeglądania plików plik do wysłania lub pobrania. | FileReference | |||
Wywoływana po pomyślnym wysłaniu danych i odbiorze danych z serwera. | FileReference |
creationDate | właściwość |
creationDate:Date
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Data utworzenia pliku na dysku lokalnym. Jeśli obiekt nie został wypełniony, wywołanie w celu pobrania wartości tej właściwości zwróci wartość null
.
Uwaga: Jeśli system operacyjny nie ma właściwości creationDate
wartość CreationDate
jest równa lastModifiedDate
.
Implementacja
public function get creationDate():Date
Zgłasza
IllegalOperationError — Jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem. W tym wypadku wartością właściwości creationDate jest null .
| |
IOError — Jeśli nie można uzyskać dostępu do pliku informacyjnego, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym błąd wej/wyj pliku.
|
Powiązane elementy interfejsu API
creator | właściwość |
creator:String
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Typ kreatora platformy Macintosh dla pliku, z którego można korzystać w wersjach systemu Mac OS wcześniejszych niż Mac OS X. W systemach Windows i Linux ta właściwość ma wartość null
. Jeśli obiekt FileReference nie został wypełniony, wywołanie w celu pobrania wartości tej właściwości zwróci wartość null
.
Implementacja
public function get creator():String
Zgłasza
IllegalOperationError — Na platformach Macintosh, jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem. W tym wypadku wartością właściwości creator jest null .
|
Powiązane elementy interfejsu API
data | właściwość |
data:ByteArray
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Obiekt ByteArray reprezentujący dane z załadowanego pliku po pomyślnym wywołaniu metody load()
.
Implementacja
public function get data():ByteArray
Zgłasza
IllegalOperationError — Jeśli metoda load() nie została wywołana pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem. W tym wypadku wartością właściwości data jest null .
| |
IOError — Jeśli nie można otworzyć lub odczytać pliku, lub jeśli zdarzy się podobny błąd podczas próby uzyskania dostępu do pliku, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym na błąd wej/wyj pliku. W tym wypadku wartością właściwości data jest null .
|
Powiązane elementy interfejsu API
extension | właściwość |
extension:String
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Rozszerzenie nazwy pliku.
Rozszerzenie pliku jest częścią jego nazwy poprzedzoną końcową kropką ("."), bez tej kropki. Jeśli brakuje kropki w nazwie pliku rozszerzenie ma wartość null
.
Uwaga: Właściwości extension
należy używać w celu określania typu pliku; nie należy w tym celu używać właściwości creator
lub type
. Właściwości creator
oraz type
należy uważać jako właściwości niezalecane. Mają zastosowanie w starszych wersjach systemów Mac OS.
Implementacja
public function get extension():String
Zgłasza
IllegalOperationError — Jeśli odwołanie nie jest inicjalizowane.
|
modificationDate | właściwość |
modificationDate:Date
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Player 9 |
Data ostatniej modyfikacji pliku na dysku lokalnym. Jeśli obiekt FileReference nie został wypełniony, wywołanie w celu pobrania wartości tej właściwości zwróci wartość null
.
Implementacja
public function get modificationDate():Date
Zgłasza
IllegalOperationError — Jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem. W tym wypadku wartością właściwości modificationDate jest null .
| |
IOError — Jeśli nie można uzyskać dostępu do pliku informacyjnego, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym błąd wejścia/wyjścia pliku.
|
Powiązane elementy interfejsu API
name | właściwość |
name:String
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Nazwa pliku na dysku lokalnym. Jeśli obiekt FileReference nie został wypełniony (poprawnym wywołaniem metody FileReference.download()
lub FileReference.browse()
), program Flash Player zgłosi błąd podczas próby pobrania wartości tej właściwości.
Wszystkie właściwości obiektu FileReference są wypełniane przez wywołanie metody browse()
. W przeciwieństwie do pozostałych właściwości obiektu FileReference wywołanie metody download()
powoduje wypełnienie właściwości name
, jeśli wywołane zostanie zdarzenie select
.
Implementacja
public function get name():String
Zgłasza
IllegalOperationError — Jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem.
|
Powiązane elementy interfejsu API
permissionStatus | właściwość |
size | właściwość |
size:Number
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Rozmiar pliku na dysku lokalnym (w bajtach).
Uwaga: w początkowych wersjach języka ActionScript 3.0, właściwość size
była definiowana jako obiekt uint, który obsługiwał pliki o rozmiarze do około 4 GB. W tej chwili jest zaimplementowana jako obiekt Number w celu umożliwienia obsługi większych plików.
Implementacja
public function get size():Number
Zgłasza
IllegalOperationError — Jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem.
| |
IOError — Jeśli nie można otworzyć lub odczytać pliku, lub jeśli zdarzy się podobny błąd podczas próby uzyskania dostępu do pliku, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym na błąd wej/wyj pliku.
|
Powiązane elementy interfejsu API
type | właściwość |
type:String
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Typ pliku.
W systemach Windows i Linux ta właściwość jest rozszerzeniem pliku. Na platformie Macintosh ta właściwość jest 4-znakowym typem pliku, który używany jest jedynie w wersjach systemu Mac OS wcześniejszych niż Mac OS X. Jeśli obiekt FileReference nie został wypełniony wywołanie w celu pobrania wartości tej właściwości zwróci wartość null
.
Dla systemów Windows, Linux oraz Mac OS X, rozszerzenie pliku — sekcja właściwości name
, która następuje po ostatnim wystąpieniu znaku kropki (.). — wskazuje na typ pliku.
Implementacja
public function get type():String
Zgłasza
IllegalOperationError — Jeśli metody FileReference.browse() , FileReferenceList.browse() lub FileReference.download() nie zostały wywołane pomyślnie, zgłoszony zostanie wyjątek wraz z komunikatem wskazującym, że funkcje zostały wywołane w nieprawidłowej kolejności lub wcześniejsze wywołanie zakończyło się niepowodzeniem. W tym wypadku wartością właściwości type jest null .
|
Powiązane elementy interfejsu API
FileReference | () | Konstruktor |
public function FileReference()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tworzy nowy obiekt typu FileReference. Podczas wypełniania obiekt FileReference reprezentuje plik na dysku lokalnym użytkownika.
Powiązane elementy interfejsu API
browse | () | metoda |
public function browse(typeFilter:Array = null):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wyświetla okno przeglądania plików, w którym użytkownik może wybrać plik do wysłania. Okno dialogowe należy do systemu operacyjnego użytkownika. Użytkownik może wybrać plik z lokalnego komputera lub z innych systemów, na przykład za pomocą ścieżki UNC w systemie Windows.
Uwaga: Klasa File dostępna w środowisku Adobe AIR zawiera metody umożliwiające dostęp do bardziej konkretnie określonych systemowych okien dialogowych wyboru plików. Są to metody: File.browseForDirectory()
, File.browseForOpen()
, File.browseForOpenMultiple()
oraz File.browseForSave()
.
Po pomyślnym wywołaniu tej metody i wybraniu przez użytkownika pliku, właściwości tego obiektu FileReference są wypełniane właściwościami tego pliku. Każde kolejne wywołanie metody FileReference.browse()
powoduje ponowne ustawienie właściwości obiektu FileReference na plik, który użytkownik wybrał w oknie dialogowym. Tylko jedna sesja browse()
lub download()
może być przetwarzana w tym samym czasie (ponieważ tylko jedno okno dialogowe może być otwarte w danej chwili).
Za pomocą parametru typeFilter
można określić, które pliki będą wyświetlane w oknie dialogowym.
W programie Flash Player 10 i Flash Player 9 z aktualizacją 5 metodę można wywołać pomyślnie tylko w odpowiedzi na zdarzenie użytkownika (np. w module obsługi zdarzenia dla zdarzenia kliknięcia myszą lub naciśnięcia klawisza). W przeciwnym wypadku wywołanie metody skutkuje w programie Flash Player zgłoszeniem wyjątku Error.
Należy zauważyć, że ze względu na nową funkcjonalność dodaną do programu Flash Player podczas publikowania do Flash Player 10 jednocześnie może być aktywna tylko jedna z następujących operacji: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. W przeciwnym wypadku program Flash Player zgłosi błąd wykonania (kod 2174). Aby zatrzymać operację w toku, należy użyć metody FileReference.cancel()
. To ograniczenie obowiązuje jedynie w programie Flash Player 10. Ograniczenie jednoczesnego wykonywania wielu operacji nie dotyczy poprzednich wersji programu Flash Player.
W środowisku Adobe AIR okno dialogowe przeglądania w poszukiwaniu pliku nie zawsze jest wyświetlane przed oknami, których właścicielami są inne okna (przed oknami z wartością właściwości owner
inną niż null). Aby uniknąć problemów z kolejnością, przed wywołaniem tej metody należy ukryć okna mające właścicieli.
Parametry
typeFilter:Array (default = null ) — Tablica instancji klasy FileFilter używana do filtrowania plików wyświetlanych w oknie dialogowym. Pominięcie tego parametru spowoduje wyświetlenie wszystkich plików. Aby uzyskać więcej informacji, zobacz klasę FileFilter
|
Boolean — Zwraca wartość true , jeśli parametry są poprawne, a następnie otwierane jest okno dialogowe przeglądania plików.
|
Zdarzenia
select: — Wywoływane, gdy użytkownik wybierze element w oknie wyboru plików.
| |
cancel: — Wywoływane, gdy użytkownik wybierze element w oknie wyboru plików.
|
Zgłasza
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania FileReference lub FileReferenceList jest w toku; tylko jedna sesja przeglądania plików może być wykonywana w tym samym czasie. 2) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
ArgumentError — Jeśli tablica typeFilter zawiera nieprawidłowo sformatowane obiekty FileFilter, zgłoszony zostanie wyjątek. Aby uzyskać informacje na temat prawidłowego formatowania obiektów FileFilter, zobacz klasę FileFilter.
| |
Error — Gdy metoda nie zostanie wywołana w odpowiedzi na działanie użytkownika, np. zdarzenie myszy lub klawiatury.
|
Powiązane elementy interfejsu API
zdarzenie anulowania
FileReference.download()
FileReferenceList.browse()
File.browseForDirectory()
File.browseForOpen()
File.browseForOpenMultiple()
File.browseForSave()
cancel | () | metoda |
public function cancel():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Anuluje wszystkie trwające operacje upload lub download tego obiektu FileReference. Wywołanie tej metody nie powoduje wywołania zdarzenia cancel
; to zdarzenie wywoływane jest jedynie wtedy, gdy użytkownik anuluje operację odwołując okno dialogowe wysyłania lub pobierania pliku.
download | () | metoda |
public function download(request:URLRequest, defaultFileName:String = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Otwiera okno dialogowe, które pozwala użytkownikowi pobrać pliki ze zdalnego serwera. Mimo że program Flash Player nie posiada ograniczeń dotyczących rozmiarów plików do wysyłania i pobierania, odtwarzacz oficjalnie obsługuje wysyłanie i pobieranie plików o wielkości do 100 MB.
W pierwszej kolejności metoda download()
otwiera okno dialogowe systemu operacyjnego, w którym należy wprowadzić nazwę pliku i wybrać lokalizację w komputerze lokalnym, w której plik zostanie zapisany. Po wybraniu pliku i potwierdzeniu operacji download (na przykład przez kliknięcie opcji Zapisz) rozpoczyna się pobieranie z serwera zdalnego. Detektory przechwytują zdarzenia w celu wskazania postępu, powodzenia lub błędu pobierania. Aby stwierdzić stan okna dialogowego i operacji download·po wywołaniu metody download()
, w kodzie użytkownika muszą być wykrywane takie zdarzenia, jak cancel
, open
, progress
oraz complete
.
Funkcji FileReference.upload()
oraz FileReference.download()
nie można zablokować. Powrót z tych funkcji następuje po wywołaniu, przed zakończeniem przesyłania pliku. Ponadto, jeśli obiekt FileReference znajdzie się poza zasięgiem, jakiekolwiek wysyłanie lub pobieranie, które nie zostało jeszcze zakończone, zostanie anulowane ze względu na opuszczenie zasięgu. Należy upewnić się, że obiekt FileReference pozostaje w zasięgu tak długo, jak długo kontynuowane jest pobieranie lub wysyłanie.
Jeśli pobieranie pliku zakończy się pomyślnie, właściwości obiektu FileReference są wypełniane właściwościami pliku lokalnego. Zdarzenie complete
zostanie wywoływane, jeśli pobieranie zakończy się pomyślnie.
Tylko jedna sesja browse()
lub download()
może być przetwarzana w tym samym czasie (ponieważ tylko jedno okno dialogowe może być otwarte w tym samym czasie).
Ta metoda obsługuje pobieranie wszystkich typów plików, za pośrednictwem protokołu HTTP lub HTTPS.
Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.
Uwaga: jeśli serwer wymaga uwierzytelnienia użytkownika, tylko pliki SWF uruchomione w przeglądarce — tj. za pomocą wtyczki przeglądarki lub elementu sterującego ActiveX — mogą dostarczyć okno dialogowe w celu zapytania o nazwę i hasło użytkownika dla uwierzytelniania; tylko w przypadku operacji pobierania. W przypadku wysyłania za pomocą wtyczki lub elementu sterującego ActiveX lub w przypadku pobierania i wysyłania za pomocą samodzielnego lub zewnętrznego odtwarzacza, przesyłanie pliku zakończy się niepowodzeniem.
Korzystając z tej metody, należy wziąć pod uwagę następujący model zabezpieczeń programu Flash Player.
- Operacje ładowania są niedozwolone, jeśli wywołujący plik SWF znajduje się w niezaufanym lokalnym obszarze izolowanym.
- Domyślnym zachowaniem pomiędzy obszarami izolowanymi jest odmowa dostępu. Serwis sieci Web może zezwolić na dostęp do zasobu, dodając plik reguł URL.
- Istnieje możliwość zablokowania używania tej metody przez plik SWF. W tym celu należy ustawić parametr
allowNetworking
znacznikówobject
orazembed
na stronie HTML zawierającej zawartość SWF. - W programie Flash Player 10 i Flash Player 9 z aktualizacją 5 metodę można wywołać pomyślnie tylko w odpowiedzi na zdarzenie użytkownika (np. w module obsługi zdarzenia dla zdarzenia kliknięcia myszą lub naciśnięcia klawisza). W przeciwnym wypadku wywołanie metody skutkuje w programie Flash Player zgłoszeniem wyjątku Error.
Jednak w aplikacji Adobe AIR treść obszaru izolowanego application
(treść instalowana razem z aplikacją AIR) nie jest ograniczana przez te reguły zabezpieczeń.
Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.
Plik pobrany tą metodą jest oznaczany jako pobrany w systemach operacyjnych, w których przewidziano mechanizm takiego oznaczania:
- Windows XP z dodatkiem Service Pack 2 lub późniejszym oraz w systemie Windows Vista
- Mac OS 10.5 i późniejsze wersje
Niektóre systemy operacyjne, takie jak Linux, nie oznaczają pobranych plików.
Należy zauważyć, że ze względu na nową funkcjonalność dodaną do programu Flash Player podczas publikowania do Flash Player 10 jednocześnie może być aktywna tylko jedna z następujących operacji: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. W przeciwnym wypadku program Flash Player zgłosi błąd wykonania (kod 2174). Aby zatrzymać operację w toku, należy użyć metody FileReference.cancel()
. To ograniczenie obowiązuje jedynie w programie Flash Player 10. Ograniczenie jednoczesnego wykonywania wielu operacji nie dotyczy poprzednich wersji programu Flash Player.
W środowisku Adobe AIR okno dialogowe pobierania nie zawsze jest wyświetlane przed oknami, których właścicielami są inne okna (przed oknami z wartością właściwości owner
inną niż null). Aby uniknąć problemów z kolejnością, przed wywołaniem tej metody należy ukryć okna mające właścicieli.
Parametry
request:URLRequest — Obiekt URLRequest. Właściwość url obiektu URLRequest powinna zawierać adres URL pliku do pobrania na komputer lokalny. Jeśli ten parametr ma wartość null , zgłaszany jest wyjątek. Właściwość requestHeaders obiektu URLRequest jest ignorowana; niestandardowe nagłówki żądania HTTP nie są obsługiwane w operacjach wysyłania i pobierania. Aby wysłać do serwera parametry POST lub GET, należy ustawić wartość właściwości URLRequest.data na parametry użytkownika oraz właściwość URLRequest.method na URLRequestMethod.POST lub URLRequestMethod.GET .
W niektórych przeglądarkach ciągi znaków adresów URL mają ograniczoną długość. Ciągi o długości powyżej 256 znaków mogą zostać nieobsłużone w niektórych przeglądarkach lub serwerach. | |
defaultFileName:String (default = null ) — Domyślna nazwa pliku wyświetlana w oknie dialogowym pliku do pobrania. Ten ciąg znaków nie może zawierać następujących znaków: / \ : * ? " < > | %
Jeśli ten parametr zostanie pominięty, nazwa pliku zdalnego adresu URL jest wydzielana i używana jako domyślna. |
Zdarzenia
open: — Wywoływane po rozpoczęciu operacji download.
| |
progress: — Wywoływane okresowo podczas operacji download pliku.
| |
complete: — Wywoływane po pomyślnym zakończeniu operacji download pliku.
| |
cancel: — Wywoływane po zamknięciu okna dialogowego.
| |
select: — Wywoływane po wybraniu w oknie dialogowym pliku do pobrania.
| |
securityError: — Wywoływane w razie niepowodzenia pobierania spowodowanego błędem zabezpieczeń.
| |
ioError: — Wywoływane z dowolnej z następujących przyczyn:
|
Zgłasza
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania jest w toku; tylko jedna sesja przeglądania plików może być realizowana w danej chwili. 2) Wartość przekazana do parametru request nie zawiera poprawnej ścieżki lub protokołu. 3) Nazwa pliku do pobrania zawiera niedozwolone znaki. 4) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
SecurityError — Niezaufana treść lokalna może nie mieć możliwości komunikowania się z siecią Internet. Aby uniknąć tej sytuacji, należy zaklasyfikować ten plik SWF jako lokalny z dostępem do sieci lub plik zaufany. Ten wyjątek jest zgłaszany wraz z komunikatem wskazującym nazwę pliku oraz adres URL, do którego nie uzyskano dostępu ze względu na ograniczenia zabezpieczeń.
| |
SecurityError — Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.
| |
ArgumentError — Jeśli url.data jest tylu ByteArray, zgłaszany jest wyjątek. Aby w metodach FileReference.upload() i FileReference.download() można było korzystać z url.data , musi być ona typu URLVariables lub String.
| |
MemoryError — Ten błąd może pojawić sie z następujących powodów: 1) Program Flash Player nie może przekonwertować parametru URLRequest.data z kodowania UTF-8 na MBCS. Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody FileReference.download() został ustawiony, aby przetwarzać operację GET, i jeśli właściwość System.useCodePage ma wartość true . 2) Program Flash Player nie może zaalokować pamięci dla danych operacji POST . Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody FileReference.download() został ustawiony, aby przetwarzać operację POST .
| |
Error — Gdy metoda nie zostanie wywołana w odpowiedzi na działanie użytkownika, na przykład zdarzenie myszy lub klawiatury.
|
Powiązane elementy interfejsu API
FileReference.browse()
FileReferenceList.browse()
FileReference.upload()
FileReference.save()
Przykład ( Sposób korzystania z tego przykładu )
download
. W celu uruchomienia tego przykładu, należy zmienić właściwość downloadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[yourDomain].com/SomeFile.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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 | () | metoda |
public function load():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Rozpoczyna ładowanie pliku lokalnego wybranego przez użytkownika. Mimo że program Flash Player nie nakłada ograniczeń dotyczących rozmiarów plików do wysyłania, pobierania czy zapisywania, odtwarzacz oficjalnie obsługuje pliki o wielkości do 100 MB. W przypadku treści działającej w programie Flash Player przed wywołaniem metody load()
należy wywołać metodę FileReference.browse()
lub FileReferenceList.browse()
. Jednak treść działająca w środowisku AIR w obszarze izolowanym aplikacji może wywołać metodę load()
obiektu File bez konieczności wcześniejszego wywoływania metody browse()
. (Klasa File w środowisku AIR rozszerza klasę FileReference).
Detektory przechwytują zdarzenia w celu wskazania postępu, powodzenia lub błędu ładowania. Mimo że możliwe jest takie użycie obiektu FileReferenceList, aby użytkownik mógł wybrać wiele plików do załadowania, pliki muszą być ładowane po jednym. Aby załadować pliki jeden po drugim, należy iteracyjnie przejrzeć tablicę FileReferenceList.fileList
zawierającą obiekty FileReference.
Środowisko Adobe AIR zawiera także klasę FileStream, która udostępnia więcej opcji odczytu plików.
Funkcji FileReference.upload()
, FileReference.download()
, FileReference.load()
oraz FileReference.save()
nie można zablokować. Powrót z tych funkcji następuje po wywołaniu, przed zakończeniem przesyłania pliku. Ponadto, jeśli obiekt FileReference znajdzie się poza zasięgiem, jakiekolwiek transakcja, która nie została jeszcze zakończona, zostanie anulowana ze względu na opuszczenie zasięgu. Należy upewnić się, że obiekt FileReference pozostaje w zasięgu tak długo, jak długo kontynuowane jest pobieranie, wysyłanie lub zapisywanie.
Jeśli ładowanie pliku zakończy się pomyślnie, jego zawartość jest zapisywana jako tablica bajtów we właściwości data
obiektu FileReference.
Obowiązują następujące uwarunkowania związane z bezpieczeństwem:
- Operacje ładowania są niedozwolone, jeśli wywołujący plik SWF znajduje się w niezaufanym lokalnym obszarze izolowanym.
- Domyślnym zachowaniem pomiędzy obszarami izolowanymi jest odmowa dostępu. Strona sieci Web może zezwolić na dostęp do zasobu, dodając międzydomenowy plik reguł.
- Istnieje możliwość zapobieżenia użyciu tej metody w pliku; należy w tym celu ustawić parametr
allowNetworking
znacznikówobject
orazembed
na stronie HTML zawierającej treść SWF.
Jednak te uwarunkowania nie mają zastosowania do treści AIR w obszarze izolowanym aplikacji.
Należy zwrócić uwagę, że w przypadku publikacji dla wersji Flash Player 10 lub AIR 1.5 w danej chwili może być aktywna tylko jedna z następujących operacji: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. W przeciwnym wypadku aplikacja zgłosi błąd wykonania (kod 2174). Aby zatrzymać operację w toku, należy użyć metody FileReference.cancel()
. To ograniczenie obowiązuje tylko w programie Flash Player 10 i środowisku AIR 1.5. We wcześniejszych wersjach programu Flash Player i środowiska AIR ograniczenie to nie ma wpływu na równoległe wykonywanie wielu operacji.
W środowisku Adobe AIR okno dialogowe przeglądania w poszukiwaniu pliku nie zawsze jest wyświetlane przed oknami, których właścicielami są inne okna (przed oknami z wartością właściwości owner
inną niż null). Aby uniknąć problemów z kolejnością, przed wywołaniem tej metody należy ukryć okna mające właścicieli.
Zdarzenia
open: — Wywoływane po rozpoczęciu operacji load.
| |
progress: — Wywoływane okresowo podczas operacji wczytywania pliku.
| |
complete: — Wywoływane, gdy operacja wczytywania pliku zakończy się pomyślnie.
| |
ioError: — Wywoływane, gdy wczytywanie zakończy się niepowodzeniem, ponieważ podczas odczytu lub zapisu pliku przez aplikację wystąpił błąd wejścia/wyjścia.
|
Zgłasza
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania FileReference lub FileReferenceList jest w toku; tylko jedna sesja przeglądania plików może być wykonywana w tym samym czasie. 2) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
MemoryError — Ten błąd może się pojawić, jeśli aplikacja nie jest w stanie przydzielić pamięci dla pliku. Plik może być zbyt duży lub nie ma wystarczającej ilości pamięci.
|
Powiązane elementy interfejsu API
FileReferenceList.browse()
FileReference.data
FileReferenceList.fileList
FileReference.save()
FileStream
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function requestPermission():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 24.0 |
Wysyła żądanie udzielenia pozwolenia na dostęp do systemu plików.
Zdarzenia
PermissionStatus: — Rozsyłane, gdy użytkownik udzieli / nie udzieli zażądanego pozwolenia.
|
save | () | metoda |
public function save(data:*, defaultFileName:String = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Otwiera okno dialogowe, które umożliwia użytkownikom zapisanie pliku w lokalnym systemie plików. Mimo że program Flash Player nie posiada ograniczeń dotyczących rozmiarów plików do wysyłania, pobierania czy zapisywania, odtwarzacz oficjalnie obsługuje pliki o wielkości do 100 MB.
W pierwszej kolejności metoda save()
otwiera okno dialogowe systemu operacyjnego, w którym należy wprowadzić nazwę pliku i wybrać lokalizację w komputerze lokalnym, w której zostanie zapisany plik. Po wybraniu pliku i potwierdzeniu operacji save (na przykład przez kliknięcie opcji Zapisz) rozpocznie się proces zapisywania. Detektory przechwytują zdarzenia w celu wskazania postępu, powodzenia lub błędu operacji save. Aby stwierdzić stan okna dialogowego i operacji save po wywołaniu metody save()
, w kodzie użytkownika muszą być wykrywane takie zdarzenia, jak cancel
, open
, progress
oraz complete
.
Środowisko Adobe AIR zawiera także klasę FileStream, która udostępnia więcej opcji lokalnego zapisywania plików.
Funkcji FileReference.upload()
, FileReference.download()
, FileReference.load()
oraz FileReference.save()
nie można zablokować. Powrót z tych funkcji następuje po wywołaniu, przed zakończeniem przesyłania pliku. Ponadto, jeśli obiekt FileReference znajdzie się poza zasięgiem, jakiekolwiek transakcja, która nie została jeszcze zakończona, zostanie anulowana ze względu na opuszczenie zasięgu. Należy upewnić się, że obiekt FileReference pozostaje w zasięgu tak długo, jak długo kontynuowane jest pobieranie, wysyłanie lub zapisywanie.
Jeśli zapisywanie pliku zakończy się pomyślnie, właściwości obiektu FileReference są wypełniane właściwościami pliku lokalnego. Zdarzenie complete
zostanie wywoływane, jeśli zapisywanie zakończy się pomyślnie.
Tylko jedna sesja browse()
lub save()
może być przetwarzana w tym samym czasie (ponieważ tylko jedno okno dialogowe może być otwarte w tym samym czasie).
W programie Flash Player metodę tę można wywołać pomyślnie tylko w odpowiedzi na zdarzenie użytkownika (np. w podprogramie obsługi zdarzenia kliknięcia myszą lub naciśnięcia klawisza). W przeciwnym wypadku wywołanie metody skutkuje w programie Flash Player zgłoszeniem wyjątku Error. To ograniczenie nie ma zastosowania do treści AIR w obszarze izolowanym aplikacji.
W środowisku Adobe AIR okno dialogowe zapisywania nie zawsze jest wyświetlane przed oknami, których właścicielami są inne okna (przed oknami z wartością właściwości owner
inną niż null). Aby uniknąć problemów z kolejnością, przed wywołaniem tej metody należy ukryć okna mające właścicieli.
Parametry
data:* — Dane do zapisania. Dane mogą mieć jeden z kilku formatów i będą dla danego formatu odpowiednio traktowane:
| |
defaultFileName:String (default = null ) — Domyślna nazwa pliku wyświetlana w oknie dialogowym pliku do zapisania. Ten ciąg znaków nie może zawierać następujących znaków: / \ : * ? " < > | %
Jeśli obiekt File wywoła tę metodę, nazwa pliku będzie nazwą tego pliku, do którego odwołuje się obiekt File. (Klasa File w środowisku AIR rozszerza klasę FileReference). |
Zdarzenia
open: — Wywoływane po rozpoczęciu operacji download.
| |
progress: — Wywoływane okresowo podczas operacji download pliku.
| |
complete: — Wywoływane po pomyślnym zakończeniu operacji download pliku.
| |
cancel: — Wywoływane po zamknięciu okna dialogowego.
| |
select: — Wywoływane po wybraniu w oknie dialogowym pliku do pobrania.
| |
ioError: — Wywoływane, jeśli podczas odczytu lub przesyłania pliku wystąpił błąd wejścia/wyjścia.
|
Zgłasza
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania jest w toku; tylko jedna sesja przeglądania plików może być wykonywana w tym samym czasie. 2) Nazwa pliku do pobrania zawiera niedozwolone znaki. 3) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
ArgumentError — Jeśli parametr data nie jest typu ByteArray, i nie posiada metody toString() method, zgłaszany jest wyjątek. Jeśli parametr data nie jest typu XML, i nie posiada metody toXMLString() method, zgłaszany jest wyjątek.
| |
Error — Gdy metoda nie zostanie wywołana w odpowiedzi na działanie użytkownika, na przykład zdarzenie myszy lub klawiatury.
| |
MemoryError — Ten błąd może się pojawić, jeśli program Flash Player nie zaalokował pamięci dla pliku. Plik może być zbyt duży lub nie ma wystarczającej ilości pamięci.
|
Powiązane elementy interfejsu API
FileReference.load()
FileReference.data
FileReference.upload()
FileReference.download()
FileStream
Przykład ( Sposób korzystania z tego przykładu )
MyTextField
) oraz drugie pole, które nie jest edytowalne (MyButtonField
) i pełni rolę „przycisku” reagującego na kliknięcie myszą. Użytkownik może edytować pierwsze pole tekstowe i kliknąć przycisk, aby zapisać zawartość pola tekstowego w pliku lokalnym. W podprogramie obsługi zdarzenia kliknięcia, clickhandler
, używana jest metoda FileReference.save()
(z obiektu FileReference o nazwie MyFileReference
) w celu otwarcia okna dialogowego w bieżącym systemie operacyjnym użytkownika, tak aby użytkownik mógł zapisać zawartość pliku lokalnego pod podaną przez siebie nazwą.
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 | () | metoda |
public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Rozpoczyna wysyłanie pliku na serwer zdalny. Mimo że program Flash Player nie posiada ograniczeń dotyczących rozmiarów plików do wysyłania i pobierania, odtwarzacz oficjalnie obsługuje wysyłanie i pobieranie plików o wielkości do 100 MB.Przed wywołaniem tej metody należy wywołać metodę FileReference.browse()
lub FileReferenceList.browse()
.
W przypadku klasy File środowiska Adobe AIR, która rozszerza klasę FileReference, można używać metody upload()
do wysyłania dowolnych plików. W przypadku klasy FileReference (używanej w środowisku odtwarzacza Flash Player) użytkownik musi najpierw wybrać plik.
Detektory przechwytują zdarzenia w celu wskazania postępu, powodzenia lub błędu wysyłania. Mimo możliwości skorzystania z obiektu FileReferenceList w celu zezwolenia użytkownikom na wybranie wielu plików do wysyłania, pliki należy wysyłać jeden po drugim; aby to uczynić, należy przejść iteracyjnie przez obiekty FileReference w tablicy FileReferenceList.fileList
.
Funkcji FileReference.upload()
oraz FileReference.download()
nie można zablokować. Powrót z tych funkcji następuje po wywołaniu, przed zakończeniem przesyłania pliku. Ponadto, jeśli obiekt FileReference znajdzie się poza zasięgiem, jakiekolwiek wysyłanie lub pobieranie, które nie zostało jeszcze zakończone, zostanie anulowane ze względu na opuszczenie zasięgu. Należy upewnić się, że obiekt FileReference pozostaje w zasięgu tak długo, jak długo kontynuowane jest pobieranie lub wysyłanie.
Plik jest wysyłany do adresu URL przekazanego w parametrze url
. Adres URL musi być skryptem serwera skonfigurowanym w celu akceptowania wysyłania. Program Flash Player wysyła pliki za pomocą metody POST
protokołu HTTP. Skrypt serwera obsługujący wysyłanie powinien oczekiwać żądania POST
wraz z następującymi elementami:
- Nagłówek
Content-Type
o wartościmultipart/form-data
- Nagłówek
Content-Disposition
z atrybutemname
ustawionym domyślnie na wartość"Filedata"
oraz atrybutemfilename
ustawionym na nazwę oryginalnego pliku - Binarne treści pliku
Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.
Przykład żądania POST
znajduje się w opisie parametru uploadDataFieldName
. Parametry POST
lub GET
można przesłać metodą upload()
; zobacz opis parametru request
.
Jeśli parametr testUpload
ma wartość true
i plik do wysłania jest większy niż w przybliżeniu 10 kB, program Flash Player w systemie Windows najpierw wysyła operację POST
z zerową treścią przed wysłaniem rzeczywistego pliku w celu zweryfikowania prawdopodobieństwa pomyślnego przesłania pliku. Porgram Flash Player wysyła następnie kolejną operację POST
, która zawiera rzeczywistą treść pliku. Dla plików o rozmiarze poniżej 10 kB program Flash Player wykonuje pojedynczą operację wysyłania metodą POST
z rzeczywistą treścią pliku. Na platformie Macintosh program Flash Player nie testuje operacji wysyłania metodą POST
.
Uwaga: jeśli serwer wymaga uwierzytelnienia użytkownika, tylko pliki SWF uruchomione w przeglądarce — tj. za pomocą wtyczki przeglądarki lub elementu sterującego ActiveX — mogą dostarczyć okno dialogowe w celu zapytania o nazwę i hasło użytkownika dla uwierzytelniania; tylko w przypadku operacji pobierania. W przypadku wysyłania za pomocą wtyczki lub elementu sterującego ActiveX lub w przypadku pobierania i wysyłania za pomocą samodzielnego lub zewnętrznego odtwarzacza, przesyłanie pliku zakończy się niepowodzeniem.
Korzystając z tej metody, należy wziąć pod uwagę następujący model zabezpieczeń programu Flash Player.
- Operacje ładowania są niedozwolone, jeśli wywołujący plik SWF znajduje się w niezaufanym lokalnym obszarze izolowanym.
- Domyślnym zachowaniem pomiędzy obszarami izolowanymi jest odmowa dostępu. Serwis sieci Web może zezwolić na dostęp do zasobu, dodając plik reguł URL.
- Istnieje możliwość zablokowania używania tej metody przez plik SWF. W tym celu należy ustawić parametr
allowNetworking
znacznikówobject
orazembed
na stronie HTML zawierającej zawartość SWF.
Jednak w aplikacji Adobe AIR zawartość obszaru izolowanego application
(zawartość instalowana razem z aplikacją AIR) nie jest ograniczana przez te reguły zabezpieczeń.
Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.
Należy zauważyć, że ze względu na nową funkcjonalność dodaną do programu Flash Player podczas publikowania do Flash Player 10 jednocześnie może być aktywna tylko jedna z następujących operacji: FileReference.browse()
, FileReference.upload()
, FileReference.download()
, FileReference.load()
, FileReference.save()
. W przeciwnym wypadku program Flash Player zgłosi błąd wykonania (kod 2174). Aby zatrzymać operację w toku, należy użyć metody FileReference.cancel()
. To ograniczenie obowiązuje jedynie w programie Flash Player 10. Ograniczenie jednoczesnego wykonywania wielu operacji nie dotyczy poprzednich wersji programu Flash Player.
Parametry
request:URLRequest — Obiekt URLRequest; właściwość url obiektu URLRequest powinna zawierać adres URL skryptu serwera skonfigurowanego w celu obsługi wysyłania za pomocą wywołań POST protokołu HTTP. W niektórych przeglądarkach ciągi znaków adresów URL mają ograniczoną długość. Ciągi o długości powyżej 256 znaków mogą zostać nieobsłużone w niektórych przeglądarkach lub serwerach. Jeśli ten parametr ma wartość null , zgłaszany jest wyjątek. Właściwość requestHeaders obiektu URLRequest jest ignorowana; niestandardowe nagłówki żądania HTTP nie są obsługiwane w operacjach wysyłania i pobierania.
Adresem URL może być protokół HTTP lub, w przypadku bezpiecznego wysyłania, protokół HTTPS. Aby skorzystać z protokołu HTTPS, należy użyć adresu URL protokołu HTTPS w parametrze Aby wysłać do serwera parametry | |
uploadDataFieldName:String (default = "Filedata ") — Nazwa pola poprzedzająca dane pliku w operacji wysyłania metodą POST . Wartością właściwości uploadDataFieldName musi być wartość różna od null i niepusty ciąg znaków. Jak pokazano w poniższym przykładzie żądania POST domyślną wartością właściwości uploadDataFieldName jest "Filedata" :
Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition: form-data; name="Filedata"; filename="example.jpg" Content-Type: application/octet-stream ... contents of example.jpg ... --AaB03x-- | |
testUpload:Boolean (default = false ) — Ustawienie wskazujące żądanie testowania wysyłanego pliku. Jeśli parametr testUpload ma wartość true , program Flash Player będzie usiłował testować wysyłanie plików o rozmiarach powyżej 10 kB pliku metodą POST z treścią o długości równej 0. Operacja testowania wysyłania sprawdza, czy rzeczywsite wysyłanie pliku i uwierzytelnianie serwera, jeśli wymagane, zakończy się pomyślnie. Testowanie wysyłania dostępne jest tylko dla odtwarzaczy działających w systemie Windows.
|
Zdarzenia
open: — Wywoływane po rozpoczęciu operacji upload.
| |
progress: — Wywoływane okresowo podczas operacji upload pliku.
| |
complete: — Wywoływane, gdy operacja upload pliku zakończy się pomyślnie.
| |
uploadCompleteData: — Wywoływane, gdy po pomyślnym wysłaniu pliku dane zostały odebrane z serwera.
| |
securityError: — Wywoływane w razie niepowodzenia wysyłania spowodowanego naruszeniem zabezpieczeń.
| |
httpStatus: — Wywoływane w razie niepowodzenia wysyłania spowodowanego błędem HTTP.
| |
httpResponseStatus: — Operacja wysyłania zostanie zakończona pomyślnie i serwer zwróci w odpowiedzi adres URL i nagłówki.
| |
ioError: — Wywoływane w dowolnej z następujących sytuacji:
|
Zgłasza
SecurityError — Niezaufane lokalne pliki SWF mogą nie mieć możliwości komunikowania się z Internetem. Aby uniknąć tej sytuacji, należy zaklasyfikować ten plik SWF jako lokalny z dostępem do sieci lub plik zaufany. Ten wyjątek jest zgłaszany wraz z komunikatem wskazującym nazwę pliku lokalnego oraz adres URL, do którego nie uzyskano dostępu.
| |
SecurityError — Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.
| |
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania FileReference lub FileReferenceList jest w toku; tylko jedna sesja przeglądania plików może być realizowana w danej chwili. 2) Parametr URL nie jest poprawną ścieżką ani protokołem. Wysyłanie plik musi odbywać się za pomocą protokołu HTTP, a pobieranie za pomocą protokołu FTP lub HTTP. 3) Parametr uploadDataFieldName ma wartość null . 4) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
ArgumentError — Zgłaszany w następujących sytuacjach: 1) Parametr uploadDataFieldName jest pustym ciągiem znaków. 2) Właściwość url.data jest typu ByteArray. Aby w metodach FileReference.upload() i FileReference.download() można było korzystać z url.data , musi być ona typu URLVariables lub String. 3) W środowisku wykonania aplikacji AIR (w obszarze izolowanym aplikacji), metodą obiektu URLRequest nie jest GET ani POST (zamiast tego należy użyć metody uploadEncoded() ).
| |
MemoryError — Ten błąd może pojawić sie z następujących powodów: 1) Program Flash Player nie może przekonwertować parametru URLRequest.data z kodowania UTF-8 na MBCS. Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody FileReference.upload() został ustawiony, aby przetwarzać operację GET, i jeśli właściwość System.useCodePage ma wartość true . 2) Program Flash Player nie może przydzielić pamięci dla danych operacji POST . Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody FileReference.upload() został ustawiony, aby przetwarzać operację POST .
|
Powiązane elementy interfejsu API
uploadUnencoded | () | metoda |
public function uploadUnencoded(request:URLRequest):void
Wersje środowiska wykonawczego: | AIR 1.0 |
Inicjuje wysyłanie pliku pod adres URL bez żadnego kodowania. Podczas, gdy metoda upload()
koduje plik w formacie „form-data envelope”, metoda uploadUnencoded()
przekazuje treść, w takiej postaci, jaka jest w treści żądania HTTP. Jeśli wysyłane dane mają być zakodowane w formacie zrozumiałym dla serwera odbierającego przed ich wysłaniem, należy skorzystać z metody uploadUnencoded(). W takich sytuacjach zazwyczaj korzysta się z metody uploadeUnencoded()
oraz metody HTTP/WebDAV PUT
.
Parametry
request:URLRequest — Obiekt URLRequest; właściwość url obiektu URLRequest powinna zawierać adres URL skryptu serwera skonfigurowanego w celu obsługi wysyłania za pomocą wywołań POST protokołu HTTP. W niektórych przeglądarkach ciągi znaków adresów URL mają ograniczoną długość. Ciągi o długości powyżej 256 znaków mogą zostać nieobsłużone w niektórych przeglądarkach lub serwerach. Jeśli ten parametr ma wartość null , zgłaszany jest wyjątek.
Adresem URL może być protokół HTTP lub, w przypadku bezpiecznego wysyłania, protokół HTTPS. Aby skorzystać z protokołu HTTPS, należy użyć adresu URL protokołu HTTPS w parametrze Aby wysłać do serwera parametry |
Zdarzenia
open: — Wywoływane po rozpoczęciu operacji upload.
| |
progress: — Wywoływane okresowo podczas operacji upload pliku.
| |
complete: — Wywoływane, gdy operacja upload pliku zakończy się pomyślnie.
| |
uploadCompleteData: — Wywoływane, gdy po pomyślnym wysłaniu pliku dane zostały odebrane z serwera.
| |
securityError: — Wywoływane w razie niepowodzenia wysyłania spowodowanego naruszeniem zabezpieczeń.
| |
httpStatus: — Wywoływane w razie niepowodzenia wysyłania spowodowanego błędem HTTP.
| |
httpResponseStatus: — Operacja wysyłania zostanie zakończona pomyślnie i serwer zwróci w odpowiedzi adres URL i nagłówki.
| |
ioError: — Wywoływane w dowolnej z następujących sytuacji:
|
Zgłasza
SecurityError — Niezaufane lokalne pliki SWF mogą nie mieć możliwości komunikowania się z Internetem. Aby uniknąć tej sytuacji, należy zaklasyfikować ten plik SWF jako lokalny z dostępem do sieci lub plik zaufany. Ten wyjątek jest zgłaszany wraz z komunikatem wskazującym nazwę pliku lokalnego oraz adres URL, do którego nie uzyskano dostępu.
| |
IllegalOperationError — Zgłaszany w następujących sytuacjach: 1) Inna sesja przeglądania FileReference lub FileReferenceList jest w toku; tylko jedna sesja przeglądania plików może być realizowana w danej chwili. 2) Parametr URL nie jest poprawną ścieżką ani protokołem. Wysyłanie pliku musi odbywać się przy użyciu protokołu HTTP.
|
Powiązane elementy interfejsu API
cancel | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.CANCEL
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wywoływane, gdy użytkownik anuluje wysyłanie lub pobieranie pliku w oknie dialogowym przeglądania plików. Program Flash Player nie wywoła tego zdarzenia, jeśli użytkownik anuluje wysyłanie lub pobieranie w inny sposób (zamykając przeglądarkę lub zatrzymując bieżącą aplikację).
StałaEvent.CANCEL
definiuje wartość właściwości type
obiektu zdarzenia cancel
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Odwołanie do obiektu, w którym operacja jest anulowana. |
Przykład ( Sposób korzystania z tego przykładu )
transmission
. W celu uruchomienia tego przykładu, należy zmienić właściwość downloadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[yourDomain].com/SomeFile.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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 | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.COMPLETE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana po zakończeniu pobierania lub wtedy, gdy podczas wysyłania danych zostanie wygenerowany kod stanu HTTP 200. W przypadku pobierania pliku to zdarzenie jest wywoływane, gdy program Flash Player lub aplikacja Adobe AIR zakończy pobieranie na dysk całego pliku. W przypadku wysyłania pliku to zdarzenie wywoływane jest po odebraniu przez program Flash Player lub aplikację Adobe AIR kodu stanu HTTP o numerze 200 z serwera odbierającego przesyłane dane.
StałaEvent.COMPLETE
definiuje wartość właściwości type
obiektu zdarzenia complete
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt sieciowy, którego ładowanie zostało ukończone. |
Przykład ( Sposób korzystania z tego przykładu )
complete
. W celu uruchomienia tego przykładu, należy zmienić właściwość downloadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[yourDomain].com/SomeFile.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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); } } }
Powiązane elementy interfejsu API
httpResponseStatus | Zdarzenie |
flash.events.HTTPStatusEvent
właściwość HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, AIR 1.0 |
Wywoływane, jeśli wywołanie metody upload()
lub uploadUnencoded()
skutkuje próbą uzyskania dostępu do danych za pomocą protokołu HTTP i aplikacja Adobe AIR ma możliwość wykrycia i zwrócenia kodu stanu żądania.
httpStatus
, zdarzenie httpResponseStatus
jest dostarczane przed danymi odpowiedzi. Ponadto zdarzenia httpResponseStatus
zawiera wartości właściwości responseHeaders
i responseURL
(niezdefiniowane w przypadku zdarzenia httpStatus
). Należy zauważyć, że ewentualne zdarzenie httpResponseStatus
zostanie wysłane przed (i oprócz) wszelkich zdarzeń ukończenia
lubbłędu
.
Stała HTTPStatusEvent.HTTP_RESPONSE_STATUS
definiuje wartość właściwości type
obiektu zdarzenia httpResponseStatus
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
responseURL | Adres URL, z którego została zwrócona odpowiedź. |
responseHeaders | Nagłówki zwróconej odpowiedzi w postaci tablicy obiektów URLRequestHeader. |
status | Zwrócony przez serwer kod stanu HTTP. |
redirected | Czy odpowiedź jest wynikiem przekierowania. |
target | Obiekt sieciowy odbierający kod stanu HTTP. |
Powiązane elementy interfejsu API
httpStatus | Zdarzenie |
flash.events.HTTPStatusEvent
właściwość HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wywoływana, gdy wysłanie danych nie powiedzie się i będzie dostępny kod stanu HTTP opisujący błąd. Wywołanie zdarzenia httpStatus
poprzedzane jest zdarzeniem ioError
.
Zdarzenie httpStatus
wywoływane jest jedynie w przypadku niepowodzeń wysyłania. Dla treści uruchamianych w programie Flash Player to zdarzenie nie ma zastosowania w przypadku niepowodzeń pobierania. Jeśli pobieranie zakończy się niepowodzeniem z powodu błędu protokołu HTTP, zostanie on zgłoszony jako błąd we/wyj.
HTTPStatusEvent.HTTP_STATUS
definiuje wartość type
właściwości obiektu zdarzenia httpStatus
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
status | Zwrócony przez serwer kod stanu HTTP. |
target | Obiekt sieciowy odbierający kod stanu HTTP. |
Powiązane elementy interfejsu API
ioError | Zdarzenie |
flash.events.IOErrorEvent
właściwość IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana, gdy pobieranie lub wysyłanie danych nie powiedzie się. Przesyłanie pliku może zakończyć się niepowodzeniem z następujących powodów:
- Wystąpił błąd wejścia/wyjścia podczas odczytywania, zapisywania lub przesyłania pliku przez odtwarzacz.
- Plik SWF usiłuje wysłać plik na serwer, który wymaga uwierzytelniania (tj. nazwy użytkownika i hasła). Podczas wysyłania program Flash Player lub środowisko Adobe AIR nie zapewnia użytkownikom środków do wprowadzania haseł. Jeśli plik SWF usiłuje wysłać plik na serwer, który wymaga uwierzytelniania, wysyłanie zakończy się niepowodzeniem.
- Plik SWF usiłuje pobrać plik z serwera, który wymaga uwierzytelniania, za pomocą samodzielnego lub zewnętrznego odtwarzacza. Podczas pobierania autonomiczne i zewnętrzne odtwarzacze nie zapewniają użytkownikom środków do wprowadzania haseł. Pobieranie zakończy się niepowodzeniem, jeśli w tych odtwarzaczach plik SWF usiłuje pobierania pliku z serwera, który wymaga uwierzytelniania. Pobieranie pliku zakończy się pomyślnie jedynie w odtwarzaczach działających jako elementy sterujące ActiveX i wtyczki przeglądarek oraz w środowisku wykonawczym Adobe AIR.
- Wartość przekazana do parametru
url
metodyupload()
zawiera niepoprawny protokół. Poprawnymi protokołami są HTTP i HTTPS.
Ważne: jedynie aplikacje uruchomiane w przeglądarce — tj. za pomocą wtyczki przeglądarki lub elementu sterującego ActiveX — oraz treści uruchamiane w aplikacji Adobe AIR umożliwiają wyświetlenie okna dialogowego w celu zapytania o nazwę i hasło użytkownika dla uwierzytelniania; tylko w przypadku pobierania. W przypadku wysyłania za pomocą wtyczki lub elementu sterującego ActiveX w wersji programu Flash Player, lub w przypadku pobierania lub wysyłania za pomocą samodzielnego lub zewnętrznego odtwarzacza, przesyłanie pliku zakończy się niepowodzeniem.
Definiuje wartość właściwościtype
obiektu zdarzenia ioError
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
errorID | Numer referencyjny skojarzony z konkretnym błędem (tylko w środowisku AIR). |
target | Obiekt sieciowy, w którym wystąpił błąd wejścia/wyjścia. |
text | Tekst, który ma być wyświetlany w charakterze komunikatu o błędzie. |
Powiązane elementy interfejsu API
open | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.OPEN
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wywoływane po rozpoczęciu operacji wysyłania lub pobierania.
StałaEvent.OPEN
definiuje wartość właściwości type
obiektu zdarzenia open
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt sieciowy, który otworzył połączenie. |
Przykład ( Sposób korzystania z tego przykładu )
download
. W celu uruchomienia tego przykładu, należy zmienić właściwość downloadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[yourDomain].com/SomeFile.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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); } } }
Powiązane elementy interfejsu API
permissionStatus | Zdarzenie |
flash.events.PermissionEvent
właściwość PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 24.0 |
Rozsyłane, gdy aplikacja zażąda pozwolenia na dostęp do systemu plików. Sprawdź wartość właściwości status
, aby zobaczyć, czy pozwolenie zostało udzielone czy nie.
Powiązane elementy interfejsu API
progress | Zdarzenie |
flash.events.ProgressEvent
właściwość ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana okresowo podczas operacji wysyłania lub wczytywania pliku. Zdarzenie progress
wywoływane jest, gdy program Flash Player przesyła dane na serwer i okresowo podczas przesyłania, nawet jeśli ostatecznie nie zakończy się ono powodzeniem. Aby określić, czy i kiedy przesyłanie rzeczywiście zostanie zakończone powodzeniem, należy wykrywać zdarzenie complete
.
W niektórych przypadkach zdarzenia progress
nie zostaną odebrane. Na przykład, jeśli przesyłany plik jest bardzo mały lub wysyłanie/pobieranie odbywa się bardzo szybko zdarzenie progress
może nie być wywoływane.
Postępu wysyłania pliku nie można wyznaczyć na platformach Macintosh z systemem operacyjnym w wersji starszej niż OS X 10.3. Zdarzenie progress
wywoływane jest podczas operacji upload, lecz wartość właściwości bytesLoaded
zdarzenia postępu wynosi -1 i wskazuje, że nie można wyznaczyć postępu.
type
obiektu zdarzenia progress
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
bytesLoaded | Liczba elementów lub bajtów załadowanych w momencie, w którym detektor przetwarza zdarzenie. |
bytesTotal | Łączna liczba elementów lub bajtów, które zostaną ostatecznie załadowane w razie pomyślnego zakończenia operacji ładowania. |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt informujący o postępie. |
Przykład ( Sposób korzystania z tego przykładu )
progress
. W celu uruchomienia tego przykładu, należy zmienić właściwość downloadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[yourDomain].com/SomeFile.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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); } } }
Powiązane elementy interfejsu API
securityError | Zdarzenie |
flash.events.SecurityErrorEvent
właściwość SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wywoływane, kiedy wywołanie metody FileReference.upload()
lub FileReference.download()
skutkuje próbą wysłania pliku na serwer lub pobrania pliku z serwera, który działa na zewnątrz obszaru izolowanego kodu wywołującego. Wartością właściwości text opisującej określony błąd, który się pojawił, jest zazwyczaj "securitySandboxError"
. Plik wywołujący SWF usiłował uzyskać dostęp do pliku SWF na zewnątrz własnej domeny i nie posiada uprawnień do tego typu działania. Istnieje możliwość zapobiegania takim błędom przez użycie pliku reguł URL.
W aplikacji Adobe AIR te ograniczenia nie są stosowane dla treści w obszarze izolowanym aplikacji.
W aplikacji Adobe AIR te ograniczenia nie są stosowane dla zawartości w obszarze izolowanym aplikacji.
StałaSecurityErrorEvent.SECURITY_ERROR
definiuje wartość właściwości type
obiektu zdarzenia securityError
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt sieciowy zgłaszający błąd zabezpieczeń. |
text | Tekst, który ma być wyświetlany w charakterze komunikatu o błędzie. |
Powiązane elementy interfejsu API
select | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.SELECT
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana, gdy użytkownik wybierze w oknie przeglądania plików plik do wysłania lub pobrania. (To okno dialogowe otwierane jest w momencie wywołania metod FileReference.browse()
, FileReferenceList.browse()
lub FileReference.download()
). Kiedy użytkownik wybiera plik i potwierdza operację (na przykład klikając opcję Zapisz), właściwości obiektu FileReference są wypełniane.
Dla treści uruchomionych w programie Flash Player lub na zewnątrz obszaru izolowanego aplikacji w środowisku wykonawczym Adobe AIR zdarzenie select
działa nieco inaczej w zależności od metody, która je wywołała. Jeśli zdarzenie select
wywołane zostanie po wywołaniu metody browse()
, program Flash Player lub aplikacja AIR może odczytać wszystkie właściwości obiektu FileReference, ponieważ plik wybrany przez użytkownika znajduje się w lokalnym systemie plików. Jeśli po wywołaniu metody download()
pojawi się zdarzenie select
, program Flash Player lub aplikacja AIR może odczytać jedynie właściwość name
, ponieważ w momencie wywołania zdarzenia select
plik nie został jeszcze pobrany do lokalnego systemu plików. Jeśli w momencie pobrania pliku wywołane zostanie zdarzenie complete
, program Flash Player lub aplikacja AIR będzie w stanie odczytać wszystkie pozostałe właściwości obiektu FileReference.
Event.SELECT
definiuje wartość właściwości type
obiektu zdarzenia select
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt, w którym został wybrany element. |
Przykład ( Sposób korzystania z tego przykładu )
select
. W celu uruchomienia tego przykładu, należy zmienić właściwość uploadURL.url
tak, aby wskazywała na rzeczywistą domenę i plik, a nie fikcyjny http://www.[domena].com/plik.pdf. Może również zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci. Aby uruchomić ten przykład z komputera użytkownika, na serwerze również musi znajdować się przesłany plik crossdomain.xml. Jeśli wywołana zostanie funkcja ioErrorHandler()
, prawdopodobnie należy zaktualizować właściwość uploadURL
poprawnym adresem URL, dla którego skonfigurowano odbieranie wysyłanych danych.
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 | Zdarzenie |
flash.events.DataEvent
właściwość DataEvent.type =
flash.events.DataEvent.UPLOAD_COMPLETE_DATA
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9.0.28.0 |
Wywoływana po pomyślnym wysłaniu danych i odbiorze danych z serwera. To zdarzenie nie jest wywoływane, jeśli dane nie zostaną zwrócone z serwera.
Definiuje wartość właściwościtype
obiektu zdarzenia uploadCompleteData
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
data | Dane surowe zwrócone z serwera po pomyślnym wysłaniu pliku. |
target | Obiekt FileReference odbierający dane po pomyślnym wysłaniu. |
Uwaga: w celu uruchomienia tego przykładu, należy zmienić właściwość uploadURL.url tak, aby wskazywała na rzeczywisty adres URL, a nie fikcyjny adres z tego przykładu. Adres URL powinien wskazywać na plik o nazwie yourUploadHandlerScript.cfm
w katalogu głównym określonego adresu URL. W zależności od konfiguracji środowiska użytkownika może zaistnieć potrzeba skompilowania pliku SWF z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash Player w celu zezwolenia temu plikowi na dostęp do sieci.
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, 12:06 PM Z