【问题标题】:FileTransfer only partially download filesFileTransfer 仅下载部分文件
【发布时间】:2015-05-11 17:31:04
【问题描述】:

尝试使用Filetransfer Cordova for android 下载文件,但所有文件都部分下载。它只会下载随机数的字节(~ 1-1.5 MB),然后触发成功下载事件。 这是代码:

var uri = encodeURI('http://192.168.1.5:3000/downloads/' + $scope.file.filename);
var trustHost = true;
var options = {};
var fileName = "thisIsAFile.ext";
$ionicPlatform.ready(function () {})
   .then(function(){
      var fileTransfer = new FileTransfer();
      fileTransfer.download(
      uri,
      "file://mnt/sdcard/Download/" + fileName,
          function(entry) {
              $ionicPopup.alert({
                  title: "success".toUpperCase(),
                  template: JSON.stringify(entry)
              })
          },
          function(error) {
              console.log("download error source " + error.source);
              console.log("download error target " + error.target);
          },
      trustHost, options);
 });

我可以使用浏览器从服务器(网页版或移动版)轻松下载文件。

logcat 没有帮助或成功的对象检查。

所有权限都在res/xml/config.xml 中设置,在AndroidManifest.xml 中一切正常

我也尝试了不同的文件路径,并尝试了 cordova.file.* 和 fileSystem.root

我很困惑。

我正在使用 Ionic 和 ngCordova。 FileTransfer 是文件传输 0.4.3 我已经尝试了 0.5 版本,它给了我一个持久的代码 3 错误。

有什么建议吗?

【问题讨论】:

  • 你有详细的错误吗?
  • 它没有给我任何错误,但成功对象是{"isFile":true,"isDirectory":false,"name":"immagino.jpg","fullPath":"/Download/immagino.jpg","filesystem":"<FileSystem: persistent>","nativeURL":"file:///storage/emulated/0/Download/immagino.jpg"}。该文件为 1.6 MB,仅下载了 1.2 MB

标签: android cordova ionic file-transfer ngcordova


【解决方案1】:

我已经通过在服务器端使用res.sendFile()(我正在使用 node.js)解决了这个问题。我不知道为什么,但似乎静态 url - 资源地址 - 也需要包含文件数据的响应。 我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多