File

File

Un'API per leggere, scrivere e navigare gerarchie file di sistema, basati sul w3c file api.

Oggetti

La funzionalità di accesso

A partire dalla versione 3.0, Cordova implementa le API a livello di dispositivo come plugin. Utilizzare la CLI plugin comando, descritto in Command-Line Interface, aggiungere o rimuovere questa funzionalità per un progetto:

    $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git
    $ cordova plugin rm org.apache.cordova.core.file

Per utilizzare il plugin di trasferimento file è necessario aggiungere che separatamente.

    $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git
    $ cordova plugin rm org.apache.cordova.core.file-transfer

Questi comandi si applicano a tutte le piattaforme mirate, ma modificano le impostazioni di configurazione specifiche della piattaforma descritte di seguito:

Alcune piattaforme possono supportare questa funzionalità senza richiedere alcuna configurazione speciale. Per una panoramica, vedere supporto della piattaforma.


File

Questo oggetto contiene gli attributi di un singolo file.

Proprietà

Metodi

Dettagli

Il File oggetto contiene gli attributi di un singolo file. È possibile ottenere un'istanza di un File oggetto chiamando un FileEntry dell'oggetto file() metodo.

Piattaforme supportate

fetta

Restituire un nuovo File oggetto, per cui FileReader restituisce solo la parte specificata del file. Negativi i valori per start o end sono misurati dalla fine del file. Gli indici sono posizionati rispetto alla sezione corrente. (Vedere l'esempio completo sotto.)

Parametri:

Esempio rapido

var slicedFile = file.slice(10, 30);

Esempio completo

var slice1 = file.slice(100, 400);
var slice2 = slice1.slice(20, 35);

var slice3 = file.slice(120, 135);
// slice2 and slice3 are equivalent.

Piattaforme supportate


FileReader

Il FileReader permette l'accesso a un file di base.

Proprietà

Nota: Non è supportato il seguente nel Real Estate:

Metodi

Dettagli

Il FileReader oggetto offre un modo per leggere i file dal sistema di file del dispositivo. I file possono essere letti come testo o come una stringa di dati con codifica base64. Listener di eventi ricevono il loadstart , progress , load , loadend , error , e abort eventi.

Piattaforme supportate

readAsDataURL

Parametri:

Esempio rapido

function win(file) {
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        console.log("read success");
        console.log(evt.target.result);
    };
    reader.readAsDataURL(file);
};

var fail = function (error) {
    console.log(error.code);
};

entry.file(win, fail);

readAsText

Parametri:

Esempio rapido

function win(file) {
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        console.log("read success");
        console.log(evt.target.result);
    };
    reader.readAsText(file);
};

var fail = function (error) {
    console.log(error.code);
};

entry.file(win, fail);

Abort

function win(file) {
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        console.log("read success");
        console.log(evt.target.result);
    };
    reader.readAsText(file);
    reader.abort();
};

function fail(error) {
    console.log(error.code);
}

entry.file(win, fail);

Esempio completo

<!DOCTYPE html>
<html>
  <head>
    <title>FileReader Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    }

    function gotFS(fileSystem) {
        fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
    }

    function gotFileEntry(fileEntry) {
        fileEntry.file(gotFile, fail);
    }

    function gotFile(file){
        readDataUrl(file);
        readAsText(file);
    }

    function readDataUrl(file) {
        var reader = new FileReader();
        reader.onloadend = function(evt) {
            console.log("Read as data URL");
            console.log(evt.target.result);
        };
        reader.readAsDataURL(file);
    }

    function readAsText(file) {
        var reader = new FileReader();
        reader.onloadend = function(evt) {
            console.log("Read as text");
            console.log(evt.target.result);
        };
        reader.readAsText(file);
    }

    function fail(error) {
        console.log(error.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Read File</p>
  </body>
</html>

iOS stranezze

readAsBinaryString

Attualmente supportato solo su iOS e Android.

Parametri:

Esempio rapido

function win(file) {
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        console.log("read success");
        console.log(evt.target.result);
    };
    reader.readAsBinaryString(file);
};

var fail = function (error) {
    console.log(error.code);
};

entry.file(win, fail);

readAsArrayBuffer

Attualmente supportato solo su iOS e Android.

Parametri:

Esempio rapido

function win(file) {
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        console.log("read success");
        console.log(new Uint8Array(evt.target.result));
    };
    reader.readAsArrayBuffer(file);
};

var fail = function (error) {
    console.log(error.code);
};

entry.file(win, fail);

FileWriter

Come oggetto che permette di creare e scrivere dati in un file.

Proprietà

La seguente proprietà non è supportata:

Metodi

Dettagli

Il FileWriter oggetto offre un modo per scrivere i file con codificata UTF-8 per il file system del dispositivo. Applicazioni rispondono a writestart , progress , write , writeend , error , e abort eventi.

Ogni FileWriter corrisponde a un singolo file, per cui dati possono essere scritto molte volte. Il FileWriter mantiene il file position e length attributi di consentono l'applicazione di seek e write ovunque nel file. Per impostazione predefinita, il FileWriter scrive all'inizio del file, sovrascrivendo i dati esistenti. Impostare l'opzionale append booleano per true nel FileWriter di costruttore di scrivere alla fine del file.

Dati di testo sono supportati da tutte le piattaforme elencate di seguito. Testo è codificato come UTF-8 prima di essere scritto al filesystem. Alcune piattaforme supportano anche dati binari, che possono essere passati come un ArrayBuffer o un Blob.

Piattaforme supportate

Testo e supporto binario:

Supporto di solo testo:

Cercare rapido esempio

function win(writer) {
    // fast forwards file pointer to end of file
    writer.seek(writer.length);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Troncare rapido esempio

function win(writer) {
    writer.truncate(10);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Scrivere rapido esempio

function win(writer) {
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write("some sample text");
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Binario scrivere rapido esempio

function win(writer) {
    var data = new ArrayBuffer(5),
        dataView = new Int8Array(data);
    for (i=0; i < 5; i++) {
        dataView[i] = i;
    }
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write(data);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Rapido esempio Append

function win(writer) {
    writer.onwrite = function(evt) {
    console.log("write success");
};
writer.seek(writer.length);
    writer.write("appended text");
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Abortire rapido esempio

function win(writer) {
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write("some sample text");
    writer.abort();
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Esempio completo

<!DOCTYPE html>
<html>
  <head>
    <title>FileWriter Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    }

    function gotFS(fileSystem) {
        fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
    }

    function gotFileEntry(fileEntry) {
        fileEntry.createWriter(gotFileWriter, fail);
    }

    function gotFileWriter(writer) {
        writer.onwriteend = function(evt) {
            console.log("contents of file now 'some sample text'");
            writer.truncate(11);
            writer.onwriteend = function(evt) {
                console.log("contents of file now 'some sample'");
                writer.seek(4);
                writer.write(" different text");
                writer.onwriteend = function(evt){
                    console.log("contents of file now 'some different text'");
                }
            };
        };
        writer.write("some sample text");
    }

    function fail(error) {
        console.log(error.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Write File</p>
  </body>
</html>

FileSystem

Questo oggetto rappresenta un file system.

Proprietà

Dettagli

Il FileSystem oggetto rappresenta le informazioni relative al file system. Il nome del file system è univoco tra l'elenco dei sistemi di file esposti. La proprietà della radice contiene un DirectoryEntry oggetto che rappresenta la directory radice del file system.

Piattaforme supportate

Esempio di file di sistema rapido

function onSuccess(fileSystem) {
    console.log(fileSystem.name);
    console.log(fileSystem.root.name);
}

// request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, null);

Esempio completo

<!DOCTYPE html>
<html>
  <head>
    <title>File System Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
    }

    function onFileSystemSuccess(fileSystem) {
        console.log(fileSystem.name);
        console.log(fileSystem.root.name);
    }

    function fail(evt) {
        console.log(evt.target.error.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>File System</p>
  </body>
</html>

FileEntry

Rappresenta un file su un file system, come definito nella specifica W3C directory e sistemi .

Proprietà

Nota: Il seguente attributo è definito nella specifica W3C, ma non è supportato:

Metodi

Piattaforme supportate

getMetadata

Cercare i metadati relativi a un file.

Parametri:

Esempio rapido

funzione success(metadata) {console ("ultima modifica:" + metadata.modificationTime);}

funzione fail(error) {alert(error.code)};

/ / Richiesta oggetto dei metadati per questa voce entry.getMetadata (successo, fail);

setMetadata

Metadati impostati su un file.

Attualmente funziona solo su iOS.

Parametri:

Esempio rapido

function success() {
    console.log("The metadata was successfully set.");
}

function fail() {
    alert("There was an error in setting the metadata");
}

// Set the metadata
entry.setMetadata(success, fail, { "com.apple.MobileBackup": 1});

iOS Quirk

Esempio rapido

function setFileMetadata(localFileSystem, filePath, metadataKey, metadataValue)
{
    var onSetMetadataWin = function() {
        console.log("success setting metadata")
    }
    var onSetMetadataFail = function() {
        console.log("error setting metadata")
    }

    var onGetFileWin = function(parent) {
        var data = {};
        data[metadataKey] = metadataValue;
        parent.setMetadata(onSetMetadataWin, onSetMetadataFail, data);
    }
    var onGetFileFail = function() {
        console.log("error getting file")
    }

    var onFSWin = function(fileSystem) {
        fileSystem.root.getFile(filePath, {create: true, exclusive: false}, onGetFileWin, onGetFileFail);
    }

    var onFSFail = function(evt) {
        console.log(evt.target.error.code);
    }

    window.requestFileSystem(localFileSystem, 0, onFSWin, onFSFail);
}

    setFileMetadata(LocalFileSystem.PERSISTENT, "Backups/sqlite.db", "com.apple.MobileBackup", 1);

moveTo

Spostare un file in una posizione diversa del file System. Un errore risultati se tenta di app:

Inoltre, lo spostamento di un file in cima a un file esistente tenta di eliminare e sostituire quel file.

Parametri:

Esempio rapido

function success(entry) {
    console.log("New Path: " + entry.fullPath);
}

function fail(error) {
    alert(error.code);
}

function moveFile(entry) {
    var parent = document.getElementById('parent').value,
        parentName = parent.substring(parent.lastIndexOf('/')+1),
        parentEntry = new DirectoryEntry(parentName, parent);

    // move the file to a new directory and rename it
    entry.moveTo(parentEntry, "newFile.txt", success, fail);
}

copyTo

Copiare un file in una nuova posizione nel file System. Un errore risultati se tenta di app:

Parametri:

Esempio rapido

function win(entry) {
    console.log("New Path: " + entry.fullPath);
}

function fail(error) {
    alert(error.code);
}

function copyFile(entry) {
    var parent = document.getElementById('parent').value,
        parentName = parent.substring(parent.lastIndexOf('/')+1),
        parentEntry = new DirectoryEntry(parentName, parent);

    // copy the file to a new directory and rename it
    entry.copyTo(parentEntry, "file.copy", success, fail);
}

toURL

Restituisce un URL che può essere utilizzato per individuare il file.

Esempio rapido

// Request the URL for this entry
var fileURL = entry.toURL();
console.log(fileURL);

rimuovere

Elimina un file.

Parametri:

Esempio rapido

function success(entry) {
    console.log("Removal succeeded");
}

function fail(error) {
    alert('Error removing file: ' + error.code);
}

// remove the file
entry.remove(success, fail);

getParent

Cercare il padre DirectoryEntry che contiene il file.

Parametri:

Esempio rapido

function success(parent) {
    console.log("Parent Name: " + parent.name);
}

function fail(error) {
    alert(error.code);
}

// Get the parent DirectoryEntry
entry.getParent(success, fail);

createWriter

Creare un FileWriter oggetto associato al file rappresentato dallaFileEntry.

Parametri:

Esempio rapido

function success(writer) {
    writer.write("Some text to the file");
}

function fail(error) {
    alert(error.code);
}

// create a FileWriter to write to the file
entry.createWriter(success, fail);

file

Restituire un File oggetto che rappresenta lo stato corrente del file che questa FileEntry rappresenta.

Parametri:

Esempio rapido

function success(file) {
    console.log("File size: " + file.size);
}

function fail(error) {
    alert("Unable to retrieve file properties: " + error.code);
}

// obtain properties of a file
entry.file(success, fail);

DirectoryEntry

Questo oggetto rappresenta una directory in un file system, come definita dalla specifica W3C directory e sistemi .

Proprietà

Nota: Il seguente attributo è definito nella specifica W3C, ma non è supportato:

Metodi

I seguenti metodi possono essere richiamati su un DirectoryEntry oggetto:

Piattaforme supportate

getMetadata

Cercare i metadati relativi a una directory.

Parametri:

Esempio rapido

funzione success(metadata) {console ("ultima modifica:" + metadata.modificationTime);}

funzione fail(error) {alert(error.code)};

/ / Richiesta oggetto dei metadati per questa voce entry.getMetadata (successo, fail);

setMetadata

Imposta gli attributi estesi di una directory, o metadati. Attualmente funziona solo con iOS.

Parametri:

Esempio rapido

function success() {
    console.log("The metadata was successfully set.");
}

function fail() {
    alert("There was an error in setting the metadata");
}

// Set the metadata
entry.setMetadata(success, fail, { "com.apple.MobileBackup": 1});

iOS Quirk

Esempio rapido

function setFolderMetadata(localFileSystem, subFolder, metadataKey, metadataValue)
{
    var onSetMetadataWin = function() {
        console.log("success setting metadata")
    }
    var onSetMetadataFail = function() {
        console.log("error setting metadata")
    }

    var onGetDirectoryWin = function(parent) {
        var data = {};
        data[metadataKey] = metadataValue;
        parent.setMetadata(onSetMetadataWin, onSetMetadataFail, data);
    }
    var onGetDirectoryFail = function() {
        console.log("error getting dir")
    }

    var onFSWin = function(fileSystem) {
        fileSystem.root.getDirectory(subFolder, {create: true, exclusive: false}, onGetDirectoryWin, onGetDirectoryFail);
    }

    var onFSFail = function(evt) {
        console.log(evt.target.error.code);
    }

    window.requestFileSystem(localFileSystem, 0, onFSWin, onFSFail);
}

    setFolderMetadata(LocalFileSystem.PERSISTENT, "Backups", "com.apple.MobileBackup", 1);

moveTo

Spostare una directory in un'altra posizione nel file System. Un errore risultati se tenta di app:

Lo spostamento di una directory in cima a una directory vuota esistente tenta di eliminare e sostituire quella directory.

Parametri:

Esempio rapido

function success(entry) {
    console.log("New Path: " + entry.fullPath);
}

function fail(error) {
    alert(error.code);
}

function moveDir(entry) {
    var parent = document.getElementById('parent').value,
        parentName = parent.substring(parent.lastIndexOf('/')+1),
        newName = document.getElementById('newName').value,
        parentEntry = new DirectoryEntry(parentName, parent);

    // move the directory to a new directory and rename it
    entry.moveTo(parentEntry, newName, success, fail);
}

copyTo

Copiare una directory in un'altra posizione nel file System. Un errore risultati se tenta di app:

Directory copie sono sempre ricorsivi e copiare tutto il contenuto della directory.

Parametri:

Esempio rapido

function win(entry) {
    console.log("New Path: " + entry.fullPath);
}

function fail(error) {
    alert(error.code);
}

function copyDir(entry) {
    var parent = document.getElementById('parent').value,
        parentName = parent.substring(parent.lastIndexOf('/')+1),
        newName = document.getElementById('newName').value,
        parentEntry = new DirectoryEntry(parentName, parent);

    // copy the directory to a new directory and rename it
    entry.copyTo(parentEntry, newName, success, fail);
}

toURL

Restituisce un URL che può essere utilizzato per individuare la directory.

Esempio rapido

// Get the URL for this directory
var dirURL = entry.toURL();
console.log(dirURL);

rimuovere

Elimina una directory. Un errore risultati se tenta di app:

Parametri:

Esempio rapido

funzione success(entry) {console ("riuscita rimozione");}

funzione fail(error) {alert (' errore rimozione directory: ' + Error);}

/ / Rimuovi questa directory entry.remove (successo, fail);

getParent

Cercare il padre DirectoryEntry contenente la directory.

Parametri:

Esempio rapido

function success(parent) {
    console.log("Parent Name: " + parent.name);
}

function fail(error) {
    alert('Failed to get parent directory: ' + error.code);
}

// Get the parent DirectoryEntry
entry.getParent(success, fail);

createReader

Crea un nuovo DirectoryReader per leggere le voci in una directory.

Esempio rapido

// create a directory reader
var directoryReader = entry.createReader();

getDirectory

Crea o cerca una directory esistente. Un errore risultati se tenta di app:

Parametri:

Esempio rapido

funzione success(dirEntry) {console ("nome Directory:" + dirEntry.name);}

funzione fail(error) {alert ("Impossibile creare la nuova directory:" + Error);}

/ / Recuperare una directory esistente, o crearla se non esiste già entry.getDirectory ("newDir", {creare: vero, esclusivo: false}, successo, fail);

getFile

Crea o cerca un file. Un errore risultati se tenta di app:

Parametri:

Esempio rapido

funzione success(fileEntry) {console ("Nome File:" + fileEntry.name);}

funzione fail(error) {alert ("Impossibile recuperare il file:" + Error);}

/ / Recuperare un file esistente, o crearla se non esiste entry.getFile ("NewFile", {creare: vero, esclusivo: false}, successo, fail);

removeRecursively

Elimina una directory e tutti i suoi contenuti. In caso di errore (ad esempio cercando di eliminare una directory contenente un file che non può essere rimosso), parte del contenuto della directory possono essere eliminati. Un errore risultati se tenta di app:

Parametri:

Esempio rapido

function success(parent) {
    console.log("Remove Recursively Succeeded");
}

function fail(error) {
    alert("Failed to remove directory or it's contents: " + error.code);
}

// remove the directory and all it's contents
entry.removeRecursively(success, fail);

Stranezze di blackBerry

Potrebbe non riuscire con un ControlledAccessException nei seguenti casi:

Soluzione: verificare le directory temporanee vengono pulite manualmente o mediante l'applicazione prima della reinstallazione.

Soluzione: scollegare il cavo USB dal dispositivo ed eseguire nuovamente.


DirectoryReader

Un oggetto che elenca i file e le directory all'interno di una directory, come definito nella specifica W3C directory e sistemi .

Metodi

Piattaforme supportate

readEntries

Leggere le voci in questa directory.

Parametri:

Esempio rapido

function success(entries) {
    var i;
    for (i=0; i<entries.length; i++) {
        console.log(entries[i].name);
    }
}

function fail(error) {
    alert("Failed to list directory contents: " + error.code);
}

// Get a directory reader
var directoryReader = dirEntry.createReader();

// Get a list of all the entries in the directory
directoryReader.readEntries(success,fail);

FileTransfer

Il FileTransfer oggetto consente di caricare o scaricare file da e verso un server.

Proprietà

Metodi

Dettagli

Il FileTransfer oggetto fornisce un modo per caricare i file su un server remoto utilizzando una richiesta HTTP di POST multiparte. Sono supportati i protocolli HTTP e HTTPS. Parametri facoltativi possono essere specificati passando un FileUploadOptions oggetto per il upload() metodo. Su carica di successo, un FileUploadResult oggetto viene passato al metodo di callback successo. Se si verifica un errore, un FileTransferError oggetto viene passato al metodo di callback errore. È anche possibile (solo su iOS e Android) per scaricare un file da un server remoto e salvarli sul dispositivo.

Piattaforme supportate

caricare

Parametri:

Esempio rapido

// !! 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);

Esempio completo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>File Transfer Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

        // Wait for device API libraries to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // device APIs are available
        //
        function onDeviceReady() {
            // Retrieve image file location from specified source
            navigator.camera.getPicture(
                uploadPhoto,
                function(message) { alert('get picture failed'); },
                {
                    quality         : 50,
                    destinationType : navigator.camera.DestinationType.FILE_URI,
                    sourceType      : navigator.camera.PictureSourceType.PHOTOLIBRARY
                }
            );
        }

        function uploadPhoto(imageURI) {
            var options = new FileUploadOptions();
            options.fileKey="file";
            options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
            options.mimeType="image/jpeg";

            var params = {};
            params.value1 = "test";
            params.value2 = "param";

            options.params = params;

            var ft = new FileTransfer();
            ft.upload(imageURI, 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);
        }

        </script>
</head>
<body>
    <h1>Example</h1>
    <p>Upload File</p>
</body>
</html>

Impostazione Upload intestazioni

Supportato su Android e iOS

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.upload(fileURI, uri, win, fail, options);

Stranezze Android

Impostare il chunkedMode opzione per false per evitare problemi di caricamento su un server Nginx.

Scarica

Parametri:

Esempio rapido

// !! Presuppone filePath è un percorso valido sul dispositivo var fileTransfer = nuovo FileTransfer();
var uri = encodeURI ("http://some.server.com/download.php");

fileTransfer.download (uri, filePath, function(entry) {console ("download completo:" + entry.fullPath);
    }, function(error) {console ("fonte di errore di download" + Error);
        console ("download errore obiettivo" + error.target);
        console ("codice di errore di caricamento" + Error);
    }, false, {intestazioni: {"Autorizzazione": "dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA base = ="}});

Abort

Interrompe un trasferimento in corso. Il callback onerror viene passato un oggetto FileTransferError che presenta un codice di errore di FileTransferError.ABORT_ERR.

Piattaforme supportate

Esempio rapido

// !! Assume la variabile fileURI contiene un URI valido per un file di testo su win dispositivo var = function(r) {console ("non deve essere chiamato.");}

fallire var = function(error) {/ / Error = = FileTransferError.ABORT_ERR alert ("errore: codice =" + Error);
    console ("fonte di errore caricamento" + Error);
    console ("upload errore obiettivo" + error.target);}

var opzioni = nuovo FileUploadOptions();
options.fileKey="file";
options.fileName="myphoto.jpg";
options.mimeType="image/jpeg";

var ft = FileTransfer() nuovo;
ft.upload (fileURI, encodeURI ("http://some.server.com/upload.php"), vittoria, fail, opzioni);
ft.Abort();

OnProgress

Chiamato con un ProgressEvent ogni volta che un nuovo blocco di dati viene trasferito.

Piattaforme supportate

Esempio

fileTransfer.onprogress = function(progressEvent) {
    if (progressEvent.lengthComputable) {
      loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
    } else {
      loadingStatus.increment();
    }
};
fileTransfer.download(...); // or fileTransfer.upload(...);

Stranezze - su entrambi Android un iOS, lengthComputable è false per i download che utilizzano la codifica gzip.


FileUploadOptions

A FileUploadOptions oggetto può essere passato per il FileTransfer dell'oggetto upload() metodo per specificare ulteriori parametri per lo script di upload.

Proprietà

Descrizione

A FileUploadOptions oggetto può essere passato per il FileTransfer dell'oggetto upload() metodo per specificare ulteriori parametri per lo script di upload.

WP7 Quirk


FileUploadResult

A FileUploadResult oggetto viene passato al metodo di callback di successo il FileTransfer dell'oggetto upload() metodo.

Proprietà

Descrizione

Il FileUploadResult viene restituito l'oggetto tramite il callback di successo del FileTransfer dell'oggetto upload() metodo.

iOS stranezze


Bandiere

Fornisce argomenti per la DirectoryEntry dell'oggetto getFile() e getDirectory() metodi, che cercare o creano file e directory, rispettivamente.

Proprietà

Piattaforme supportate

Esempio rapido

/ / Ottenere la directory di dati, creandola se non esiste.
dataDir = fileSystem.root.getDirectory ("dati", {creare: true});

/ / Creare il file di blocco, se e solo se esso non esiste.
lockFile = dataDir.getFile ("lockfile.txt", {creare: vero, esclusivo: true});

LocalFileSystem

Questo oggetto fornisce un modo per ottenere il filesystem di root.

Metodi

Costanti

Dettagli

I LocalFileSystem sono definiti metodi oggetto sul window oggetto.

Piattaforme supportate

Richiesta File sistema rapido esempio

function onSuccess(fileSystem) {
    console.log(fileSystem.name);
}

// request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

Risolvere il sistema di File locale URI esempio rapido

function onSuccess(fileEntry) {
    console.log(fileEntry.name);
}

window.resolveLocalFileSystemURI("file:///example.txt", onSuccess, onError);

Esempio completo

<!DOCTYPE html>
<html>
  <head>
    <title>Local File System Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
        window.resolveLocalFileSystemURI("file:///example.txt", onResolveSuccess, fail);
    }

    function onFileSystemSuccess(fileSystem) {
        console.log(fileSystem.name);
    }

    function onResolveSuccess(fileEntry) {
        console.log(fileEntry.name);
    }

    function fail(evt) {
        console.log(evt.target.error.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Local File System</p>
  </body>
</html>

requestFileSystem

Richiedere un file system in cui archiviare i dati dell'applicazione.

 window.requestFileSystem(type, size, successCallback, errorCallback)

Richiesta File sistema rapido esempio

function onSuccess(fileSystem) {
    console.log(fileSystem.name);
}

// request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

Metadati

Un'interfaccia che fornisce informazioni sullo stato di un file o una directory.

Proprietà

Dettagli

Il Metadata oggetto rappresenta informazioni sullo stato di un file o una directory. Chiamare un DirectoryEntry o FileEntry dell'oggetto getMetadata() metodo si traduce in un Metadata istanza.

Piattaforme supportate

Esempio rapido

function win(metadata) {
    console.log("Last Modified: " + metadata.modificationTime);
}

// Request the metadata object for this entry
entry.getMetadata(win, null);

FileError

A FileError oggetto viene impostato quando si verifica un errore in uno qualsiasi dei metodi File API.

Proprietà

Costanti

Descrizione

Il FileError oggetto è l'unico parametro fornito a qualsiasi callback di errore il File API. Per determinare il tipo di errore, confrontare le code proprietà a nessuna delle liste qui sopra.


FileTransferError

A FileTransferError oggetto viene passato a un callback di errore quando si verifica un errore.

Proprietà

Costanti

Descrizione

Il FileTransferError oggetto viene passato al metodo di callback errore quando si verifica un errore quando caricare o scaricare un file.