0

我正在使用 Rest API 为我的 APP 创建一个图像下载服务器,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");
    });
}
4

1 回答 1

0

添加<preference name="AndroidPersistentFileLocation" value="Compatibility" />到 config.xml 使我的文件夹和文件可见。我希望这可以帮助某人。

现在我可以看到图像,但所有图像都是损坏的

于 2018-09-05T18:58:05.583 回答