Plugin pozwala na przesyłanie i pobieranie plików.
Ten plugin określa globalne FileTransfer
, FileUploadOptions
konstruktorów.
Chociaż w globalnym zasięgu, są nie dostępne dopiero po deviceready
imprezie.
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log(FileTransfer); }
cordova plugin add cordova-plugin-file-transfer
Amazon Fire OS
Android
BlackBerry 10
Przeglądarka
Firefox OS **
iOS
Windows Phone 7 i 8 *
Windows 8
Windows
Nie obsługują onprogress
ani abort()
onprogress
Obiekt FileTransfer
zapewnia sposób wgrać pliki przy użyciu żądania HTTP wieloczęściowe POST i pobierania plików, jak również.
ProgressEvent
gdy nowy kawałek danych jest przenoszona. (Funkcja)wgraj: wysyła plik na serwer.
do pobrania: pliki do pobrania pliku z serwera.
przerwać: przerywa w toku transferu.
Parametry:
fileURL: URL plików reprezentujących pliku na urządzenie. Dla wstecznej kompatybilności, to może również być pełną ścieżkę pliku na urządzenie. (Zobacz [wstecz zgodności zauważa] poniżej)
serwer: adres URL serwera, aby otrzymać plik, jak kodowane przezencodeURI()
.
successCallback: wywołania zwrotnego, który jest przekazywany obiekt FileUploadResult
. (Funkcja)
errorCallback: wywołanie zwrotne, które wykonuje, jeżeli wystąpi błąd pobierania FileUploadResult
. Wywoływany z obiektu FileTransferError
. (Funkcja)
Opcje: parametry opcjonalne (obiektu). Ważne klucze:
file
. (DOMString)image.jpg
. (DOMString)umieścić
lub POST
. Domyślnie POST
. (DOMString)image/jpeg
. (DOMString)true
. (Wartość logiczna)trustAllHosts: parametr opcjonalny, domyślnie false
. Jeśli zestaw true
, to akceptuje wszystkie certyfikaty bezpieczeństwa. Jest to przydatne, ponieważ Android odrzuca Certyfikaty samopodpisane. Nie zaleca się do użytku produkcyjnego. Obsługiwane na Androida i iOS. (wartość logiczna)
// !! Assumes variable fileURL contains a valid URL to a text file on the device, // for example, cdvfile://localhost/persistent/path/to/file.txt var win = function (r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); } var fail = function (error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var options = new FileUploadOptions(); options.fileKey = "file"; options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1); options.mimeType = "text/plain"; var params = {}; params.value1 = "test"; params.value2 = "param"; options.params = params; var ft = new FileTransfer(); ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);
function win(r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); } function fail(error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var uri = encodeURI("http://some.server.com/upload.php"); var options = new FileUploadOptions(); options.fileKey="file"; options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1); options.mimeType="text/plain"; var headers={'headerParam':'headerValue'}; options.headers = headers; var ft = new FileTransfer(); ft.onprogress = function(progressEvent) { if (progressEvent.lengthComputable) { loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total); } else { loadingStatus.increment(); } }; ft.upload(fileURL, uri, win, fail, options);
Obiekt FileUploadResult
jest przekazywana do sukcesu wywołania zwrotnego metody upload() służącą
obiektu FileTransfer
.
bytesSent: liczba bajtów wysłanych do serwera jako część upload. (długie)
responseCode: kod odpowiedzi HTTP, zwracane przez serwer. (długie)
odpowiedź: HTTP odpowiedzi zwracane przez serwer. (DOMString)
nagłówki: nagłówki HTTP odpowiedzi przez serwer. (Obiekt)
responseCode
lubbytesSent
.Parametry:
Źródło: adres URL serwera, aby pobrać plik, jak kodowane przezencodeURI()
.
cel: url plików reprezentujących pliku na urządzenie. Dla wstecznej kompatybilności, to może również być pełną ścieżkę pliku na urządzenie. (Zobacz [wstecz zgodności zauważa] poniżej)
successCallback: wywołania zwrotnego, który jest przekazywany FileEntry
obiektu. (Funkcja)
errorCallback: wywołanie zwrotne, które wykonuje, jeśli wystąpi błąd podczas pobierania FileEntry
. Wywoływany z obiektu FileTransferError
. (Funkcja)
trustAllHosts: parametr opcjonalny, domyślnie false
. Jeśli zestaw true
, to akceptuje wszystkie certyfikaty bezpieczeństwa. Jest to przydatne, ponieważ Android odrzuca Certyfikaty samopodpisane. Nie zaleca się do użytku produkcyjnego. Obsługiwane na Androida i iOS. (wartość logiczna)
Opcje: parametry opcjonalne, obecnie tylko obsługuje nagłówki (takie jak autoryzacja (uwierzytelnianie podstawowe), itp.).
// !! Assumes variable fileURL contains a valid URL to a path on the device, // for example, cdvfile://localhost/persistent/path/to/downloads/ var fileTransfer = new FileTransfer(); var uri = encodeURI("http://some.server.com/download.php"); fileTransfer.download( uri, fileURL, function(entry) { console.log("download complete: " + entry.toURL()); }, function(error) { console.log("download error source " + error.source); console.log("download error target " + error.target); console.log("upload error code" + error.code); }, false, { headers: { "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" } } );
Przerywa w toku transferu. Onerror callback jest przekazywany obiekt FileTransferError, który kod błędu z FileTransferError.ABORT_ERR.
// !! Assumes variable fileURL contains a valid URL to a text file on the device, // for example, cdvfile://localhost/persistent/path/to/file.txt var win = function(r) { console.log("Should not be called."); } var fail = function(error) { // error.code == FileTransferError.ABORT_ERR alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var options = new FileUploadOptions(); options.fileKey="file"; options.fileName="myphoto.jpg"; options.mimeType="image/jpeg"; var ft = new FileTransfer(); ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options); ft.abort();
Obiekt FileTransferError
jest przekazywana do błąd wywołania zwrotnego, gdy wystąpi błąd.
Kod: jeden z kodów błędów wstępnie zdefiniowanych poniżej. (Liczba)
Źródło: URL do źródła. (String)
cel: adres URL do docelowego. (String)
HTTP_STATUS: kod stanu HTTP. Ten atrybut jest dostępna tylko po otrzymaniu kodu odpowiedzi z połączenia HTTP. (Liczba)
body Treść odpowiedzi. Ten atrybut jest dostępna tylko wtedy, gdy odpowiedź jest otrzymanych od połączenia HTTP. (String)
exception: albo e.getMessage lub e.toString (String)
FileTransferError.FILE_NOT_FOUND_ERR
FileTransferError.INVALID_URL_ERR
FileTransferError.CONNECTION_ERR
FileTransferError.ABORT_ERR
FileTransferError.NOT_MODIFIED_ERR
Poprzednie wersje tego pluginu tylko zaakceptować urządzenia bezwzględnych ścieżek jako źródło dla przekazywania, lub w celu pobrania. Te ścieżki będzie zazwyczaj formy
/var/mobile/Applications/<application UUID>/Documents/path/to/file (iOS) /storage/emulated/0/path/to/file (Android)
Do tyłu zgodności, akceptowane są jeszcze te ścieżki, i jeśli aplikacja nagrał ścieżki, jak te w trwałej pamięci, następnie można nadal stosować.
Te ścieżki były narażone wcześniej we właściwości fullPath
FileEntry
i DirectoryEntry
obiektów zwróconych przez wtyczki pliku. Nowe wersje pliku plugin, jednak już wystawiać te ścieżki do JavaScript.
Jeśli uaktualniasz nowy (1.0.0 lub nowsza) wersja pliku i mieć wcześniej przy entry.fullPath
jako argumenty download()
lub upload() służącą
, a następnie trzeba będzie zmienić kod aby używać adresów URL plików zamiast.
FileEntry.toURL()
i DirectoryEntry.toURL()
zwraca adres URL plików formularza
cdvfile://localhost/persistent/path/to/file
które mogą być używane zamiast bezwzględna ścieżka zarówno download()
i metody upload()
metody.