Я пытаюсь загрузить файл с FTP-сервера с помощью Cordova. У меня установлены ngCordova и плагины Filetransfer. Ниже мой код:
angular.module('TestApp', ['ionic', 'TestApp.controllers', 'charts.ng.justgage', 'pascalprecht.translate', 'ngCookies', 'ngCordova'])
var app = angular.module('TestApp.controllers', [])
app.controller('FileDownloadCtrl', function($scope, $timeout, $cordovaFileTransfer) {
$scope.downloadFile = function() {
var url = "ftp://URL/somefile.xml";
var filename = url.split("/").pop();
alert(filename);
var targetPath = cordova.file.externalRootDirectory + filename;
var trustHosts = true;
var options = new Object();
var headers = { 'Authorization': 'Basic Login_cred' };
options.headers = headers;
alert(cordova.file.externalRootDirectory);
alert(options.headers);
$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
// Success!
alert(JSON.stringify(result));
}, function(error) {
// Error
alert(JSON.stringify(error));
}, function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
})
});
}
});
Angular.module находится в другом файле JS в реальном коде
Этот код возвращает следующие предупреждения:
- какой-то файл.xml
- файл://хранилище/эмулировать/0/
- [Объект Object]
- {"code":2,"source":ftp://URL/somefile.xml","target" :file:///storage/emulated/0/somefile.xml", "http_status": null, "body": null, "exception": null}
Я попытался загрузить файл с веб-сайта, размещенного на ftp (http://website/somefile.xml), который работал просто отлично. Я почти уверен, что делаю что-то не так с заголовком. Я также попытался поместить Login_creds в целевой URL-адрес следующим образом: ftp://username:password@URL/ somefile.xml, это не сработало, но это может быть связано с браузером.
cordova plugin add cordova-plugin-file-transfer
- person webdev   schedule 27.11.2015