2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 798|回复: 2
打印 上一主题 下一主题

如何更高效的下载http URL文件(内含源码)

[复制链接]

2

主题

10

帖子

56

积分

注册会员

Rank: 2

积分
56
跳转到指定楼层
楼主
发表于 2015-7-30 00:59:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
京东购书支持本站
如何高效下载文件,大家有无好的解决办法。
现在抛砖【http URL下的文件下载】,用控件idhttp get来
    URL := 'http://****/**.mp4';

    var
      FileSteam: TMemoryStream;
    begin
      FileSize := '';
      FileSteam := TMemoryStream.Create;
      try
        IdHTTP1.Get(URL, FileSteam);
        FileSize := FileSteam.Size.ToString + ' bytes';
        FileSteam.SaveToFile(TPath.GetDocumentsPath + PathDelim + '**.mp4'); //保存下载好的文件
      finally
        FileSteam.Free;
      end;
    end,


这段代码可以实现正常下载,但是缺陷也很多。
用多个手机(安卓操作系统),测试时经常导致程序卡机,下载无反应。
如果文件容量小于10M下载还算行,一旦容量多大,下载就卡机。
大家有无好的控件或者好的办法来实现手机下载。
谢谢大家来发言。


回复

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82018
沙发
发表于 2015-7-30 08:59:37 | 只看该作者
京东数码购物支持本站
非常简单,用线程下载,匿名的就行。
线程内部,最好不要有 UI。非要有,UI 部分代码用同步函数。

安卓中线程的使用_V2.4(线程和界面).txt
http://www.2pascal.com/forum.php ... =1251&fromuid=4
(出处: 2Pascal-新时代的Pascal)



参考上文的 上半部分。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

2

主题

10

帖子

56

积分

注册会员

Rank: 2

积分
56
板凳
 楼主| 发表于 2015-7-30 17:24:21 | 只看该作者
京东数码购物支持本站
idhttp控件,用线程模式么?
这个要试下看看,是否稳定,只要稳定,就能算好的。
谢谢啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-5-18 16:13 , Processed in 0.055946 second(s), 23 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表