2016-02-05 4 views
6

Ich verwende Cordova FileTransfer-Objekt, um eine Datei von einer URL auf das Gerät herunterzuladen.Laden Sie eine Datei in den Download-Ordner des Geräts mit Cordova FileTransfer

var fileTransfer = new FileTransfer(); 
var path = cordova.file.dataDirectory; 
fileTransfer.download(
     fileUrl, 
     path + "/sample.pdf", 
     function(theFile) { 
      console.log("download complete: " + theFile.toURI()); 
      alert("File downloaded to "+cordova.file.dataDirectory); 
     }, 
     function(error) {    
      console.log(JSON.stringify(error)); 
     } 
    ); 

In diesem Fall wird die Datei in data/data/com.fileDemo/files/ heruntergeladen (Ich bin nicht sicher, ob der Abruf erfolgreich ist, da ich nicht auf diesen Ordner zugreifen kann. Erfolgsmeldung als download complete: file:///data/data/com.fileDemo/files/sample.pdf bekommen). Wie kann ich dieselbe Methode verwenden, um eine Datei in den Ordner "Downloads" des Android-Geräts herunterzuladen?

Antwort

4

In Cordova, mit FileTransfer können Sie TEMPORARY oder PERSISTENT Dateisystem

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, gotFS, fail); 
  • iOS
    • PERSISTENT kehrt das Verzeichnis Dokumente anfordern,
    • TEMPORARY werden die Caches zurückkehren Verzeichnis
  • Android
    • PERSISTENT Willen geben die Wurzel des SD-Karte/Telefonspeichers
    • TEMPORARY einen Ordner im Datenordner zurückzukehren.

Siehe für weitere Informationen File API & FileTransfer.

+4

Ich habe es gerade versucht, aber die gofs verweist auf den Datenordner der Anwendung. nicht den Download-Ordner direkt unter dem root. Ist es möglich, auf den Download-Ordner im Stammverzeichnis zuzugreifen? –

+1

Für diejenigen, die immer noch dieses Problem festhielten, sollte 'cordova.file.externalRootDirectory + 'Download /'' oder 'fileSystem.root.toURL() + 'Download /' funktionieren – REI

Verwandte Themen