2016-04-14 11 views
1

Ich habe ein Projekt, das die Dateien von der Website lädt. Klicken Sie im Browser auf einen Link (http://www.uzhnu.edu.ua/uk/infocentre/get/6500), es lädt Dateien gleichzeitig mit Namen und Erweiterung. Wie man es in der ionischen App implementiert, weiß ich nicht. von einer URL heruntergeladen, wobei $ scope.id id-Datei (usw. 6500) Helfen Sie mir bitte, oder ein paar Ideen, wie diese lösen.CordovaFile & CordovaFileTransfer. Wie bekomme ich den richtigen Namen der Datei, mit der richtigen Datei Typ

$scope.downloadFile = function() { 
$ionicLoading.show({template: 'Download file...'}); 
var url = "http://www.uzhnu.edu.ua/uk/infocentre/get/"+$scope.id; 
var filename = $scope.id+".doc"; 
alert(filename); 
var targetPath = "/storage/sdcard0/documents/" + filename; 
var trustHosts = true 
var options = {}; 
$cordovaFileTransfer.download(url, targetPath, options, trustHosts) 
.then(function() { 
// Success! 
$ionicLoading.hide(); 
alert('File download ' + targetPath); 
}, function(error) { 
$ionicLoading.hide(); 
// An error occured. Show a message to the user 
alert('Sorry'); 
alert(JSON.stringify(error)); 
}); 
}; 
+0

$ scope.id Umfang Variable überprüfen Sie bitte hier http://santoshshinde2012.blogspot.in/2015/03/file-upload- Download-mit-ng-cordova.html –

+0

ich sehe dieses Tutorial, aber Probleme in meiner uRL gibt es keinen „Dateinamen“ nur id –

+0

ich die Antwort aktualisieren Sie bitte –

Antwort

0

JA! ! Ich kann es schließlich tat Wenn jemand einen Code benötigen, hier ist sie:

$scope.downloadFile = function() { 
    var url = "http://example.com/page"; 
    $ionicLoading.show({template: 'Download file...'}); 
    $http.get(url). 
     success(function (data, status, headers) { 
     var head = headers('Content-Disposition'); 
     var filename = head.substr(head.lastIndexOf('=')+1); 
     alert(filename); 
     var targetPath = "/storage/sdcard0/documents/" + filename; 
     var trustHosts = true; 
     var options = {}; 
     $cordovaFileTransfer.download(url, targetPath, options, trustHosts) 
      .then(function(entry) { 
      $ionicLoading.hide(); 
      console.log('download complete: ' + entry.toURL()); 
      alert('File download: ' + targetPath); 
      }, function(error) { 
      $ionicLoading.hide(); 
      console.log('headers: ' + headers('Cache-Control')); 
      // An error occured. Show a message to the user 
      alert('Sorry'); 
      alert(JSON.stringify(error)); 
      }) 
     alert(head1); 
     $ionicLoading.hide(); 
     $scope.$broadcast('scroll.refreshComplete'); 
     return(JSON.stringify(head1)) 
     }) 
     .error(function (status) { 
     alert(status); 
     $ionicLoading.hide(); 
     $scope.$broadcast('scroll.refreshComplete'); 
     }); 
    }; 
0

Verwenden Sie die folgende Funktion Datei vom Server document_filename und verwenden Sie es auf den Ort der $ scope.id

 $scope.downloadFile = function(document_filename) { 
      $ionicLoading.show({ 
       template: 'Download file...' 
      }); 
      var url = "http://www.uzhnu.edu.ua/uk/infocentre/get/" + document_filename; 
      var filename = document_filename + ".doc"; 
      alert(filename); 
      var targetPath = "/storage/sdcard0/documents/" + filename; 
      var trustHosts = true 
      var options = {}; 
      $cordovaFileTransfer.download(url, targetPath, options, trustHosts) 
       .then(function() { 
        // Success! 
        $ionicLoading.hide(); 
        alert('File download ' + targetPath); 
       }, function(error) { 
        $ionicLoading.hide(); 
        // An error occured. Show a message to the user 
        alert('Sorry'); 
        alert(JSON.stringify(error)); 
       }); 
     }; 

Hoffnung funktionieren diese

Übergeben Sie die Parameter zum Download wird dir helfen !!

Für weitere Informationen gehen Sie zu here.

+0

Datei mit dem Namen „Undefided.doc“ heruntergeladen überprüfen, aber in Webseite ist eine andere Datei (pdf, jpg, etc). Ich denke vielleicht Probleme in den Kopfzeilen. In "Postman" angezeigt korrekten Namen der Datei, aber habe diese Daten parsen ich weiß es nicht. Hier ist [Bildschirm] (http://prntscr.com/as3xt7) –

+0

bitte Ihre Dateinamen zum Zeitpunkt der Aufruf Funktion wie Downloadfile (6500) –

+0

ich verstehe wirklich nicht passieren, was Sie schreiben. Es ist möglich im Detail? Gerade jetzt in Postman fand ich in Headern, die den Dateinamen (** Content-Disposition → Inline; Dateiname = 02121128_variant.doc **) vermittelt, aber wie es in das Dokument eingefügt wird, weiß ich nicht –

Verwandte Themen