# org.apache.cordova.file-transfer Ce plugin vous permet de télécharger des fichiers. ## Installation cordova plugin add org.apache.cordova.file-transfer ## Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * * iOS * Windows Phone 7 et 8 * * Windows 8 * * *Ne supportent pas `onprogress` ni `abort()` * # Transfert de fichiers Le `FileTransfer` objet fournit un moyen de télécharger des fichiers à l'aide d'une requête HTTP de la poste plusieurs partie et pour télécharger des fichiers aussi bien. ## Propriétés * **onprogress** : fonction appelée avec un `ProgressEvent` à chaque fois qu'un nouveau segment de données est transféré. *(Function)* ## Méthodes * **upload** : envoie un fichier à un serveur. * **download** : télécharge un fichier depuis un serveur. * **abort** : annule le transfert en cours. ## upload **Paramètres**: * **filePath** : chemin d'accès complet au fichier sur l'appareil. * **server** : l'URL du serveur destiné à recevoir le fichier, encodée via `encodeURI()`. * **successCallback**: un callback passé à un objet `Metadata`. *(Fonction)* * **errorCallback** : callback d'erreur s'exécutant si une erreur survient lors de la récupération de l'objet `Metadata` . Appelée avec un objet `FileTransferError`. *(Function)* * **trustAllHosts** : paramètre facultatif, sa valeur par défaut est `false`. Si sa valeur est réglée à `true`, tous les certificats de sécurité sont acceptés. Ceci peut être utile car Android rejette les certificats auto-signés. N'est pas recommandé pour une utilisation en production. Supporté sous Android et iOS. *(boolean)* * **options**: paramètres facultatifs *(objet)*. Clés valides : * **fileKey** : le nom de l'élément form. La valeur par défaut est `file`. (DOMString) * **fileName** : le nom de fichier à utiliser pour l'enregistrement sur le serveur. La valeur par défaut est `image.jpg`. (DOMString) * **mimeType** : le type mime des données à envoyer. La valeur par défaut est `image/jpeg`. (DOMString) * **params** : un ensemble de paires clé/valeur facultative à passer dans la requête HTTP. (Objet) * **chunkedMode** : s'il faut transmettre ou non les données en mode streaming de bloc. La valeur par défaut est `true`. (Boolean) * **headers** : un objet représentant les noms et valeurs d'en-têtes à transmettre. Utiliser un tableau permet de spécifier plusieurs valeurs. (Objet) ### Exemple // !! Assumes variable fileURI contains a valid URI to a text file on the device 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 = fileURI.substr(fileURI.lastIndexOf('/') + 1); options.mimeType = "text/plain"; var params = {}; params.value1 = "test"; params.value2 = "param"; options.params = params; var ft = new FileTransfer(); ft.upload(fileURI, encodeURI("http://some.server.com/upload.php"), win, fail, options); ### Exemple avec télécharger des en-têtes et des événements de progression (Android et iOS uniquement) 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=fileURI.substr(fileURI.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(fileURI, uri, win, fail, options); ## FileUploadResult Un objet `FileUploadResult` est passé à la callback de succès de la méthode `upload()` de l'objet `FileTransfer`. ### Propriétés * **bytesSent** : le nombre d'octets envoyés au serveur dans le cadre du téléchargement. (long) * **responseCode** : le code de réponse HTTP retourné par le serveur. (long) * **response** : la réponse HTTP renvoyée par le serveur. (DOMString) ### iOS Quirks * Ne prend pas en charge les propriétés `responseCode` et `bytesSent`. ## download **Paramètres**: * **source** : l'URL du serveur depuis lequel télécharger le fichier, encodée via `encodeURI()`. * **target** : chemin d'accès complet au fichier sur l'appareil. * **successCallback** : une callback de succès à laquelle est passée un objet `FileEntry`. *(Function)* * **errorCallback** : une callback d'erreur s'exécutant si une erreur se produit lors de la récupération de l'objet `Metadata`. Appelée avec un objet `FileTransferError`. *(Function)* * **trustAllHosts**: paramètre facultatif, valeur par défaut est `false` . Si la valeur `true` , il accepte tous les certificats de sécurité. Ceci est utile parce que Android rejette des certificats auto-signés. Non recommandé pour une utilisation de production. Supporté sur Android et iOS. *(boolean)* * **options** : paramètres facultatifs, seules les en-têtes sont actuellement supportées (par exemple l'autorisation (authentification basique), etc.). ### Exemple // !! Suppose que filePath est un chemin valide sur l'appareil var fileTransfer = new FileTransfer(); var uri = encodeURI("http://some.server.com/download.php"); fileTransfer.download( uri, filePath, function(entry) { console.log("Téléchargement terminé : " + entry.fullPath); }, function(error) { console.log("Source pour l'erreur de téléchargement : " + error.source); console.log("Destination pour l'erreur de téléchargement : " + error.target); console.log("Code de l'erreur de téléchargement : " + error.code); }, false, { headers: { "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" } } ); ## abort Abandonne un transfert en cours. Un objet FileTransferError avec un code d'erreur FileTransferError.ABORT_ERR est passé à la callback d'erreur onerror. ### Exemple // !! Suppose que la variable fileURI contient l'URI valide d'un fichier texte sur l'appareil var win = function(r) { console.log("Ne devrait pas être appelée."); } var fail = function(error) { // error.code == FileTransferError.ABORT_ERR alert("Une erreur est survenue : code = " + error.code); console.log("Source pour l'erreur de téléchargement : " + error.source); console.log("Destination pour l'erreur de téléchargement : " + error.target); } var options = new FileUploadOptions(); options.fileKey="file"; options.fileName="myphoto.jpg"; options.mimeType="image/jpeg"; var ft = new FileTransfer(); ft.upload(fileURI, encodeURI("http://some.server.com/upload.php"), win, fail, options); ft.abort(); ## FileTransferError Un objet `FileTransferError` est passé à une callback d'erreur lorsqu'une erreur survient. ### Propriétés * **code** : l'un des codes d'erreur prédéfinis énumérés ci-dessous. (Number) * **source** : l'URI de la source. (String) * **target**: l'URI de la destination. (String) * **http_status** : code d'état HTTP. Cet attribut n'est disponible que lorsqu'un code de réponse est fourni via la connexion HTTP. (Number) ### Constantes * `FileTransferError.FILE_NOT_FOUND_ERR` * `FileTransferError.INVALID_URL_ERR` * `FileTransferError.CONNECTION_ERR` * `FileTransferError.ABORT_ERR`