2016-02-05 8 views
6

Używam obiektu Cordova FileTransfer, aby pobrać plik z adresu URL do urządzenia.Pobierz plik do folderu Pobieranie urządzenia za pomocą 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)); 
     } 
    ); 

W tym przypadku plik jest pobierany do data/data/com.fileDemo/files/ (nie jestem pewien, czy pobieranie jest sukces, bo nie może uzyskać dostępu do tego folderu. Pierwsze komunikat o powodzeniu jak download complete: file:///data/data/com.fileDemo/files/sample.pdf). Jak mogę użyć tej samej metody, aby pobrać plik do folderu "Downloads" na urządzeniu z Androidem?

Odpowiedz

4

W Cordova, z FileTransfer, można zażądać TEMPORARY lub PERSISTENT system plików

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, gotFS, fail); 
  • iOS
    • PERSISTENT powróci katalogu dokumentów,
    • TEMPORARY powróci bufory katalog
  • Android
    • PERSISTENT wola zwraca pierwiastek pamięci SD/telefon
    • TEMPORARY powróci folder wewnątrz folderu danych.

Patrz File API & FileTransfer aby uzyskać więcej informacji.

+4

Po prostu próbowałem tego, ale getFs wskazuje na folder danych aplikacji. nie folder pobierania bezpośrednio pod rootem. Czy jest to możliwe, aby uzyskać dostęp do folderu pobierania, który znajduje się w katalogu głównym? –

+1

Dla tych, którzy nadal tkwią w tym problemie, powinien działać 'cordova.file.externalRootDirectory + 'Download /'' lub 'fileSystem.root.toURL() + 'Download /'' – REI

Powiązane problemy