311 lines
12 KiB
Markdown
311 lines
12 KiB
Markdown
|
<!--
|
||
|
# license: 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
|
||
|
|
||
|
[![Build Status](https://travis-ci.org/apache/cordova-plugin-file-transfer.svg)](https://travis-ci.org/apache/cordova-plugin-file-transfer)
|
||
|
|
||
|
Documentazione plugin: <doc/index.md>
|
||
|
|
||
|
Questo plugin permette di caricare e scaricare file.
|
||
|
|
||
|
Questo plugin definisce globale `FileTransfer`, costruttori di `FileUploadOptions`.
|
||
|
|
||
|
Anche se in ambito globale, non sono disponibili fino a dopo l'evento `deviceready`.
|
||
|
|
||
|
document.addEventListener("deviceready", onDeviceReady, false);
|
||
|
function onDeviceReady() {
|
||
|
console.log(FileTransfer);
|
||
|
}
|
||
|
|
||
|
|
||
|
## Installazione
|
||
|
|
||
|
cordova plugin add cordova-plugin-file-transfer
|
||
|
|
||
|
|
||
|
## Piattaforme supportate
|
||
|
|
||
|
* Amazon fuoco OS
|
||
|
* Android
|
||
|
* BlackBerry 10
|
||
|
* Browser
|
||
|
* Firefox OS**
|
||
|
* iOS
|
||
|
* Windows Phone 7 e 8 *
|
||
|
* Windows 8
|
||
|
* Windows
|
||
|
|
||
|
\ * *Non supportano `onprogress` né `abort()` *
|
||
|
|
||
|
\ * * *Non supportano `onprogress` *
|
||
|
|
||
|
# FileTransfer
|
||
|
|
||
|
L'oggetto `FileTransfer` fornisce un modo per caricare i file utilizzando una richiesta HTTP multiparte POST o PUT e scaricare file pure.
|
||
|
|
||
|
## Proprietà
|
||
|
|
||
|
* **OnProgress**: chiamata con un `ProgressEvent` ogni volta che un nuovo blocco di dati viene trasferito. *(Funzione)*
|
||
|
|
||
|
## Metodi
|
||
|
|
||
|
* **caricare**: invia un file a un server.
|
||
|
|
||
|
* **Scarica**: Scarica un file dal server.
|
||
|
|
||
|
* **Abort**: interrompe un trasferimento in corso.
|
||
|
|
||
|
## upload
|
||
|
|
||
|
**Parametri**:
|
||
|
|
||
|
* **fileURL**: Filesystem URL che rappresenta il file nel dispositivo. Per indietro la compatibilità, questo può anche essere il percorso completo del file sul dispositivo. (Vedere [indietro compatibilità rileva] qui sotto)
|
||
|
|
||
|
* **server**: URL del server per ricevere il file, come codificato dal`encodeURI()`.
|
||
|
|
||
|
* **successCallback**: un callback che viene passato un oggetto `FileUploadResult`. *(Funzione)*
|
||
|
|
||
|
* **errorCallback**: un callback che viene eseguito se si verifica un errore di recupero `FileUploadResult`. Richiamato con un oggetto `FileTransferError`. *(Funzione)*
|
||
|
|
||
|
* **opzioni**: parametri facoltativi *(oggetto)*. Chiavi valide:
|
||
|
|
||
|
* **fileKey**: il nome dell'elemento form. Valore predefinito è `file` . (DOMString)
|
||
|
* **nome file**: il nome del file da utilizzare quando si salva il file sul server. Valore predefinito è `image.jpg` . (DOMString)
|
||
|
* **httpMethod**: metodo HTTP da utilizzare - `PUT` o `POST`. Impostazioni predefinite per `POST`. (DOMString)
|
||
|
* **mimeType**: il tipo mime dei dati da caricare. Impostazioni predefinite su `image/jpeg`. (DOMString)
|
||
|
* **params**: un insieme di coppie chiave/valore opzionale per passare nella richiesta HTTP. (Object)
|
||
|
* **chunkedMode**: se a caricare i dati in modalità streaming chunked. Impostazione predefinita è `true`. (Boolean)
|
||
|
* **headers**: una mappa di valori di intestazione e nome dell'intestazione. Utilizzare una matrice per specificare più di un valore. Su iOS, FireOS e Android, se è presente, un'intestazione Content-Type il nome dati form multipart non verranno utilizzati. (Object)
|
||
|
* **httpMethod**: metodo HTTP da utilizzare per esempio POST o PUT. Il valore predefinito è `POST`. (DOMString)
|
||
|
|
||
|
* **trustAllHosts**: parametro opzionale, valore predefinito è `false` . Se impostata su `true` , accetta tutti i certificati di sicurezza. Questo è utile poiché Android respinge i certificati autofirmati sicurezza. Non raccomandato per uso in produzione. Supportato su Android e iOS. *(boolean)*
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
// !! 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);
|
||
|
|
||
|
|
||
|
### Esempio con intestazioni di caricare ed eventi Progress (Android e iOS solo)
|
||
|
|
||
|
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
|
||
|
|
||
|
Un oggetto `FileUploadResult` viene passato al metodo di callback del metodo `upload()` dell'oggetto `FileTransfer` successo.
|
||
|
|
||
|
### Proprietà
|
||
|
|
||
|
* **bytesSent**: il numero di byte inviati al server come parte dell'upload. (lungo)
|
||
|
|
||
|
* **responseCode**: codice di risposta HTTP restituito dal server. (lungo)
|
||
|
|
||
|
* **risposta**: risposta HTTP restituito dal server. (DOMString)
|
||
|
|
||
|
* **intestazioni**: intestazioni di risposta HTTP dal server. (Oggetto)
|
||
|
|
||
|
* Attualmente supportato solo iOS.
|
||
|
|
||
|
### iOS stranezze
|
||
|
|
||
|
* Non supporta `responseCode` o`bytesSent`.
|
||
|
|
||
|
## Scarica
|
||
|
|
||
|
**Parametri**:
|
||
|
|
||
|
* **fonte**: URL del server per scaricare il file, come codificato dal`encodeURI()`.
|
||
|
|
||
|
* **destinazione**: Filesystem url che rappresenta il file nel dispositivo. Per indietro la compatibilità, questo può anche essere il percorso completo del file sul dispositivo. (Vedere [indietro compatibilità rileva] qui sotto)
|
||
|
|
||
|
* **successCallback**: un callback passato un `FileEntry` oggetto. *(Funzione)*
|
||
|
|
||
|
* **errorCallback**: un callback che viene eseguito se si verifica un errore durante il recupero `FileEntry`. Richiamato con un oggetto `FileTransferError`. *(Function)*
|
||
|
|
||
|
* **trustAllHosts**: parametro opzionale, valore predefinito è `false` . Se impostata su `true` , accetta tutti i certificati di sicurezza. Questo è utile perché Android respinge i certificati autofirmati sicurezza. Non raccomandato per uso in produzione. Supportato su Android e iOS. *(boolean)*
|
||
|
|
||
|
* **opzioni**: parametri facoltativi, attualmente solo supporti intestazioni (ad esempio autorizzazione (autenticazione di base), ecc.).
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
// !! 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=="
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
### WP8 stranezze
|
||
|
|
||
|
* Il download richiede è nella cache di implementazione nativa. Per evitare la memorizzazione nella cache, passare `if-Modified-Since` intestazione per metodo di download.
|
||
|
|
||
|
## Abort
|
||
|
|
||
|
Interrompe un trasferimento in corso. Il callback onerror viene passato un oggetto FileTransferError che presenta un codice di errore di FileTransferError.ABORT_ERR.
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
// !! 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
|
||
|
|
||
|
Un oggetto `FileTransferError` viene passato a un callback di errore quando si verifica un errore.
|
||
|
|
||
|
### Proprietà
|
||
|
|
||
|
* **codice**: uno dei codici di errore predefiniti elencati di seguito. (Numero)
|
||
|
|
||
|
* **fonte**: URL all'origine. (String)
|
||
|
|
||
|
* **destinazione**: URL di destinazione. (String)
|
||
|
|
||
|
* **http_status**: codice di stato HTTP. Questo attributo è disponibile solo quando viene ricevuto un codice di risposta della connessione HTTP. (Numero)
|
||
|
|
||
|
* **body** Corpo della risposta. Questo attributo è disponibile solo quando viene ricevuta una risposta dalla connessione HTTP. (String)
|
||
|
|
||
|
* **exception**: O e.getMessage o e.toString (String)
|
||
|
|
||
|
### Costanti
|
||
|
|
||
|
* 1 = `FileTransferError.FILE_NOT_FOUND_ERR`
|
||
|
* 2 = `FileTransferError.INVALID_URL_ERR`
|
||
|
* 3 = `FileTransferError.CONNECTION_ERR`
|
||
|
* 4 = `FileTransferError.ABORT_ERR`
|
||
|
* 5 = `FileTransferError.NOT_MODIFIED_ERR`
|
||
|
|
||
|
## Note di compatibilità all'indietro
|
||
|
|
||
|
Versioni precedenti di questo plugin accetterebbe solo dispositivo-assoluto-percorsi di file come origine per upload, o come destinazione per il download. Questi percorsi si sarebbero generalmente di forma
|
||
|
|
||
|
/var/mobile/Applications/<application UUID>/Documents/path/to/file (iOS)
|
||
|
/storage/emulated/0/path/to/file (Android)
|
||
|
|
||
|
|
||
|
Per indietro compatibilità, questi percorsi sono ancora accettati, e se l'applicazione ha registrato percorsi come questi in un archivio permanente, quindi possono continuare a essere utilizzato.
|
||
|
|
||
|
Questi percorsi sono stati precedentemente esposti nella proprietà `fullPath` di `FileEntry` e oggetti `DirectoryEntry` restituiti dal File plugin. Nuove versioni del File plugin, tuttavia, non è più espongono questi percorsi a JavaScript.
|
||
|
|
||
|
Se si esegue l'aggiornamento a una nuova (1.0.0 o più recente) versione del File e si hanno precedentemente utilizzato `entry.fullPath` come argomenti per `download()` o `upload()`, quindi sarà necessario cambiare il codice per utilizzare gli URL filesystem invece.
|
||
|
|
||
|
`FileEntry.toURL()` e `DirectoryEntry.toURL()` restituiscono un filesystem URL del modulo
|
||
|
|
||
|
cdvfile://localhost/persistent/path/to/file
|
||
|
|
||
|
|
||
|
che può essere utilizzato al posto del percorso assoluto nei metodi sia `download()` e `upload()`.
|