使用Tidesdk下载文件

时间:2013-01-30 14:33:07

标签: tidesdk

如何下​​载文件并将其存储在本地?我搜索了doc和google,但找不到它的一个例子。

我试过了:

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:

2 个答案:

答案 0 :(得分:2)

似乎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();
});

希望这有助于,至少指出正确的方向。

答案 1 :(得分:0)

我发现这适用于我的需要,这只是为了将文件放到机器上:

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

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