303 lines
11 KiB
Markdown
303 lines
11 KiB
Markdown
|
<!---
|
||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||
|
or more contributor license agreements. See the NOTICE file
|
||
|
distributed with this work for additional information
|
||
|
regarding copyright ownership. The ASF licenses this file
|
||
|
to you under the Apache License, Version 2.0 (the
|
||
|
"License"); you may not use this file except in compliance
|
||
|
with the License. You may obtain a copy of the License at
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing,
|
||
|
software distributed under the License is distributed on an
|
||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
KIND, either express or implied. See the License for the
|
||
|
specific language governing permissions and limitations
|
||
|
under the License.
|
||
|
-->
|
||
|
|
||
|
# cordova-plugin-file-transfer
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
|
||
|
|
||
|
## Instalacja
|
||
|
|
||
|
cordova plugin add cordova-plugin-file-transfer
|
||
|
|
||
|
|
||
|
## Obsługiwane platformy
|
||
|
|
||
|
* 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()`*
|
||
|
|
||
|
* * *Nie obsługują `onprogress`*
|
||
|
|
||
|
# FileTransfer
|
||
|
|
||
|
Obiekt `FileTransfer` zapewnia sposób wgrać pliki przy użyciu żądania HTTP wieloczęściowe POST i pobierania plików, jak również.
|
||
|
|
||
|
## Właściwości
|
||
|
|
||
|
* **OnProgress**: o nazwie `ProgressEvent` gdy nowy kawałek danych jest przenoszona. *(Funkcja)*
|
||
|
|
||
|
## Metody
|
||
|
|
||
|
* **wgraj**: wysyła plik na serwer.
|
||
|
|
||
|
* **do pobrania**: pliki do pobrania pliku z serwera.
|
||
|
|
||
|
* **przerwać**: przerywa w toku transferu.
|
||
|
|
||
|
## upload
|
||
|
|
||
|
**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 przez`encodeURI()`.
|
||
|
|
||
|
* **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:
|
||
|
|
||
|
* **fileKey**: nazwa elementu form. Domyślnie `file` . (DOMString)
|
||
|
* **Nazwa pliku**: nazwy pliku, aby użyć podczas zapisywania pliku na serwerze. Domyślnie `image.jpg` . (DOMString)
|
||
|
* **element httpMethod**: Metoda HTTP do użycia - `umieścić` lub `POST`. Domyślnie `POST`. (DOMString)
|
||
|
* **mimeType**: Typ mime danych do przesłania. Domyślnie do `image/jpeg`. (DOMString)
|
||
|
* **params**: zestaw par opcjonalny klucz/wartość w żądaniu HTTP. (Obiekt)
|
||
|
* **chunkedMode**: czy przekazać dane w trybie pakietowego przesyłania strumieniowego. Wartością domyślną jest `true`. (Wartość logiczna)
|
||
|
* **headers**: Mapa wartości Nazwa/nagłówka nagłówek. Aby określić więcej niż jedną wartość, należy użyć tablicę. (Obiekt)
|
||
|
|
||
|
* **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)*
|
||
|
|
||
|
### Przykład
|
||
|
|
||
|
// !! 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);
|
||
|
|
||
|
|
||
|
### Przykład z Prześlij nagłówki i zdarzeń postępu (Android i iOS tylko)
|
||
|
|
||
|
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);
|
||
|
|
||
|
|
||
|
## FileUploadResult
|
||
|
|
||
|
Obiekt `FileUploadResult` jest przekazywana do sukcesu wywołania zwrotnego metody `upload() służącą` obiektu `FileTransfer`.
|
||
|
|
||
|
### Właściwości
|
||
|
|
||
|
* **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)
|
||
|
|
||
|
* Obecnie obsługiwane na iOS tylko.
|
||
|
|
||
|
### Dziwactwa iOS
|
||
|
|
||
|
* Nie obsługuje `responseCode` lub`bytesSent`.
|
||
|
|
||
|
## download
|
||
|
|
||
|
**Parametry**:
|
||
|
|
||
|
* **Źródło**: adres URL serwera, aby pobrać plik, jak kodowane przez`encodeURI()`.
|
||
|
|
||
|
* **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.).
|
||
|
|
||
|
### Przykład
|
||
|
|
||
|
// !! 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=="
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
## abort
|
||
|
|
||
|
Przerywa w toku transferu. Onerror callback jest przekazywany obiekt FileTransferError, który kod błędu z FileTransferError.ABORT_ERR.
|
||
|
|
||
|
### Przykład
|
||
|
|
||
|
// !! 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();
|
||
|
|
||
|
|
||
|
## FileTransferError
|
||
|
|
||
|
Obiekt `FileTransferError` jest przekazywana do błąd wywołania zwrotnego, gdy wystąpi błąd.
|
||
|
|
||
|
### Właściwości
|
||
|
|
||
|
* **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)
|
||
|
|
||
|
### Stałe
|
||
|
|
||
|
* 1 = `FileTransferError.FILE_NOT_FOUND_ERR`
|
||
|
* 2 = `FileTransferError.INVALID_URL_ERR`
|
||
|
* 3 = `FileTransferError.CONNECTION_ERR`
|
||
|
* 4 = `FileTransferError.ABORT_ERR`
|
||
|
* 5 = `FileTransferError.NOT_MODIFIED_ERR`
|
||
|
|
||
|
## Do tyłu zgodności stwierdza
|
||
|
|
||
|
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.
|