ionic FileTransfer не дает результата/ошибок / обратной связи, а затем выполняет функцию успеха

I have an Ionic framework, where I have the FileTranser module loaded so I can take a picture and upload that. «Сфотографировать» часть работает отлично.

Когда я щелкаю изображение так, чтобы оно загрузилось, он запускает наложение «занят загрузкой», затем это исчезает, и он будет выполнять функцию oncomplete.

Проблема в том, что фактическая часть загрузки ничего не делает. Никаких ошибок, никаких уведомлений, ничего в моих журналах, никаких фактических ресурсов XHR (или каких-либо ресурсов). Это делает его довольно трудным для отладки. Может ли кто-нибудь подтолкнуть меня в правильном направлении?

Ps: я делаю это на моем android, подключенном к debugconsole Chrome

$scope.takePicture = function() {
    var options = {
        quality: 90,
        destinationType: Camera.DestinationType.FILE_URL,
        sourceType: Camera.PictureSourceType.CAMERA
    };

    $cordovaCamera.getPicture(options).then(
        function(imageData) {
            $scope.picData = imageData;
            $scope.ftLoad = true;
            //~ $localStorage.setItem('fotoUp', imageData);
            //~ $localStorage.fotoUp = imageData;
            $ionicLoading.show({template: 'Loading picture...', duration:500});
        },
        function(err){ 
            $ionicLoading.show({template: 'Error loading...', duration:500});
        }
    )
}
//--------------------------
// Upload the photo
$scope.uploadPicture = function() {
    $scope.upload = {};
    $ionicLoading.show({template: 'Bezig met uploaden...'});
    var fileURL = $scope.picData;
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
    options.mimeType = "image/jpeg";
    options.chunkedMode = true;


    var ft = new FileTransfer();
    ft.upload(fileURL, "https://www.example.com/recieve_photos.php", viewUploadedPictures, function(error) {
        $ionicLoading.show({template: 'connection error...'});
        $ionicLoading.hide();
    }, options);
}

var viewUploadedPictures = function($) {
    $ionicLoading.show({template: 'Get uploaded pictures...'});
    $http.get('https://www.example.com/recieve_photos.php')
        .then(function (response){
            $scope.upload.result = response.data
        }).catch(function(error){
            $scope.error = error;
        });
    $ionicLoading.hide();
}

1 ответ

  1. Я нашел другую документацию, которая показала, как использовать результат / ответ для отладки больше:

        var win = function (r) {
            console.log("Code = " + r.responseCode);
            console.log("Response = " + r.response);
            console.log("Sent = " + r.bytesSent);
            $ionicLoading.hide();
        }
    
        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);
            $ionicLoading.hide();
        }
        var ft = new FileTransfer();
        ft.upload(fileURL, encodeURI("https://www.example.com/recieve_photos.php"), win, fail, options);
    

    После этого, я знал, что я получил код ошибки 3, который позволил мне продолжить прогресс.