Индикатор загрузки появляется и заканчивается, без ошибок и без выходного файла на устройстве

Я создаю сервер загрузки изображений для своего приложения с Rest API, в HTML есть две кнопки: одна кнопка загрузки, а другая кнопка загрузки. При нажатии на кнопку загрузки индикатор выполнения показывает прогресс, но нет выходного файла и не показывает никаких ошибок, даже кнопка загрузки ничего не загружает.

Этот скрипт отлично работает со статическим URL (без API) путем внесения определенных изменений в скрипт.

Ссылка на мой временный сервер. http://freaksearch.com/aarti/rest-api.php?json=image&Id=

Плагин, необходимый для этого скрипта: cordova-plugin-file-transfer (это не устаревший плагин) Ссылка на плагин: https://www.npmjs.com/package/cordova-plugin-file-transfer

Вот мой HTML:

<div class="padding">
    <button class="button" ng-click="download()">Download</button>
    <button class="button" ng-click="load()">Load</button>
    {{imgFile}}
    <img ng-src="{{imgFile}}">
</div>

Вот мой сценарий:

$scope.download = function(imageId, imageName) {
    $ionicLoading.show({
      template: 'Downloading...'
    });
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
          fs.root.getDirectory(
              "MyProject",
              {
                create: true
              },
              function (dirEntry) {
                dirEntry.getFile(
                    imageName + ".jpg",
                    {
                      create: true,
                      exclusive: false
                    },
                    function gotFileEntry(fe) {
                      var p = fe.toURL();
                      fe.remove();
                      ft = new FileTransfer();
                      ft.download(
                          encodeURI('http://freaksearch.com/aarti/rest-api?json=image' + imageId),
                          p,
                          function (entry) {
                            $ionicLoading.hide();
                            $scope.imgFile = entry.toURL();
                          },
                          function (error) {
                            $ionicLoading.hide();
                            alert("Download Error Source --> " + error.source);
                          },
                          false,
                          null
                      );
                    },
                    function () {
                      $ionicLoading.hide();
                      console.log("Get the file failed");
                    }
                );
              }
          );
        },
        function () {
          $ionicLoading.hide();
          console.log("Request for filesystem failed");
        });
  }
  $scope.load = function() {
    $ionicLoading.show({
      template: 'Loading...'
    });
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
        fs.root.getDirectory(
            "MyProject",
            {
                create: false
            },
            function(dirEntry) {
                dirEntry.getFile(
                    imageName + ".jpg",
                    {
                        create: false,
                        exclusive: false
                    },
                    function gotFileEntry(fe) {
                        $ionicLoading.hide();
                        $scope.imgFile = fe.toURL();
                    },
                    function(error) {
                        $ionicLoading.hide();
                        console.log("Error getting file");
                    }
                );
            }
        );
    },
    function() {
        $ionicLoading.hide();
        console.log("Error requesting filesystem");
    });
}

person roky sen    schedule 05.09.2018    source источник
comment
Теперь мне нужно решение для поврежденных изображений.   -  person roky sen    schedule 05.09.2018


Ответы (1)


Добавление <preference name="AndroidPersistentFileLocation" value="Compatibility" />в config.xml сделало мою папку и файл видимыми. Я надеюсь, что это может помочь кому-то.

Теперь я вижу изображения, но все изображения повреждены.

person roky sen    schedule 05.09.2018