【问题标题】:Download a file with Tidesdk使用 Tidesdk 下载文件
【发布时间】:2013-01-30 14:33:07
【问题描述】:

如何下​​载文件并将其存储在本地?我已经搜索了文档和谷歌,但找不到它的示例。

我试过这个:

this.copyRemote = function(path,path2){
    reader = Ti.Network.createHTTPClient();
    writer = Ti.Filesystem.getFile(path2);

    reader.open('GET',path);
    reader.receive(writer);
}

但 Tidesdk 在尝试下载文件时崩溃,控制台上的最后一条消息是:

[12:42:39:647] [Ti.Network.HTTPClient] [Debug] Changing readyState from 0 to 1 for url:https://buttonpublish.com/api/images/7/image257189x142.jpg
[12:42:39:671] [Ti.Proxy] [Debug] Looking up proxy information for: https://buttonpublish.com/api/images/7/image257189x142.jpg
[12:

【问题讨论】:

  • 您能否尝试使用 XMLHTTPRequest 来完成 http 部分。

标签: tidesdk


【解决方案1】:

似乎使用下面的代码在TideSDK Google Group 上取得了成功:

var httpClient = Ti.Network.createHTTPClient();
httpClient.open('GET', path);
httpClient.receive(function(data) {
  var file = Ti.Filesystem.getFile(path2);
  var fileStream = file.open(Ti.Filesystem.MODE_APPEND);
  fileStream.write(data);
  fileStream.close();
});

希望能有所帮助,至少指出正确的方向。

【讨论】:

    【解决方案2】:

    我发现这可以满足我的需要,只是将文件放到机器上:

    function downloadFile( url ){
        Ti.Platform.openApplication( url );
    }
    

    这将使用机器的默认浏览器打开 URL。这种方法的一个缺点是通常会提示用户确认下载。我会使用 downloadFile 函数,以防我以后想更改它的工作方式。

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2014-06-26
      • 1970-01-01
      • 2015-04-08
      • 2010-12-20
      相关资源
      最近更新 更多