收藏本站
设为主页
联系站长
欢迎光临  | 网站首页 | 编程技术 | 网络技术 | 建站技术 | 数据库技术 | 软件应用 | 硬件技术 | 下载中心 | 睿学论坛 |  {$Wap} Welcome to RuiXue
您现在的位置: 睿学电脑技术网 >> 编程技术 >> DELPHI >> 正文
  [图文]实现用Del phi文件下 载的N种方法--睿学电脑    热 荐   【字体:小 大】
实现用Del phi文件下 载的N种方法--睿学电脑
作者:互联网    编程技术来源:互联网    点击数:    更新时间:2008-10-28    

睿学电脑专家提供,编程技术,SEO技术,网站技术,建站技术,软件应用,网上赚钱,提高流量,网络安全交流

睿学电脑专家提供,编程技术,SEO技术,网站技术,网上赚钱,提高流量,网络安全交流

我的主页: http://www.tommstudio.com/

笔者最近开发的系统中需要写一个下载文件的功能。以前用BCB调用API写的很烦琐,忽然想起有一个API就可以搞定了,于是一大早就来搜索。这个API就是UrlDownloadToFile。不仅如此,Delphi的一些控件也可以轻松实现下载,如NMHTTP,指定NMHTTP1.InputFileMode := ture; 指定Body为本地文件名,指定Get就可以下载了。下面是详细代码,均出自CSDN。我把它们都整理到这儿,让大家方便查阅。


uses UrlMon;
function DownloadFile(Source, Dest: string): Boolean;
begin
  try
    Result := UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0;
    except
      Result := False;
    end;
  end;
  
  if DownloadFile(''http://www.borland.com/delphi6.zip, ''c:\kylix.zip'') then
ShowMessage(''Download succesful'')
else ShowMessage(''Download unsuccesful'')




========================
例程:



Uses URLMon, ShellApi;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;

procedure TForm1.Button1.Click(Sender: TObject);
const
// URL Location
SourceFile := ''/program/UploadFiles_1914/200810/20081016111852276.gif'';
// Where to save the file
DestFile := ''c:\temp\google-image.gif'';
begin
  if DownloadFile(SourceFile, DestFile) then
  begin
    ShowMessage(''Download succesful!'');
    // Show downloaded image in your browser
ShellExecute(Application.Handle,PChar(''open''),PChar(DestFile),PChar(''''),nil,SW_NORMAL)
  end
  else
  ShowMessage(''Error while downloading '' + SourceFile)
end;




=================

加入如下代码:



NMHTTP1.InputFileMode := ture;
NMHTTP1.Body := ''本地文件名'';
NMHTTP1.Header := ''Head.txt'';
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
NMHTTP1.Proxy := ''代理服务器的IP地址'';
NMHTTP1.ProxyPort := ''代理服务器的端口号'';
With NMHTTP1.HeaderInfo do
  
  Begin
    Cookie := '''';
    LocalMailAddress := '''';
    LocalProgram := '''';
    Referer := '''';
    UserID := ''用户名称'';
    Password := ''用户口令'';
    End;
    
    NMHTTP1.Get(‘http://www.abcdefg.com/software/a.zip'');




试试吧,Delphi的目录中有TNMHTTP控件的例子。NT4+,Win95+,IE3+,你可以用URL Moniker的功能。



uses URLMon;

...

OleCheck(URLDownloadToFile(nil,''URL'',''Filename'',0,nil));




其中最后一个参数你还可以传入一个IBindStatusCallback的实现以跟踪下载进度或控制中止下载。简单的场合一句话就搞定了。

BTW, URL Moniker封装了大多数URL,而不是像NMHTTP那样封装协议,因此你可以用URLDownloadToFile下载HTTP,FTP甚至本地文件和局域网文件,还有其他的custom moniker,比如MSITSTORE(MSDN Library的文档moniker实现)。




var
DownLoadFile:TFileStream;
beginio
DownLoadFile:=TFileStream.Create(''c:\aa.rar'',fmCreate);
IdHTTP1.Get(''http://www.sina.com.cn/download/aa.rar'',DownLoadFile);
DownLoadFile.Free;
end;

//---------------------------




程序结束

睿学电脑专家提醒,希望大家多做研究,争取总结出更多更好的经验。

睿学电脑专家提醒,希望大家多做研究,争取总结出更多更好的经验。
编程技术录入:admin    责任编辑:admin 
  • 上一篇编程技术: 转换Flas h文件为Ex e文件的方法…

  • 下一篇编程技术: 如何在Del phi中实现 图像列表的保存--睿学电脑…
  • 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】
    最新热点 最新推荐 相关文章
    Delphi 例程-应用程 序级信…
    用Delph i实现文件下 载的几…
    窗体的建立时 机及缓冲的思 …
    用Delph i制作以浏览 器为界…
    在Delph i中开发使用 多显示…
    Delphi 下用Wind ows API创建…
    用Delph i实现自己的 Excel报…
    用DELPH I写注册表实 现建立…
    用Delph i压缩Acc ess数据库…
    通过实例看V CL组件开发 全过…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
    网站版权:睿学电脑技术有限公司 版权所有 ©2007-2009 内容版权:本站所有资料均由网友提示或收集于互联网,其版权归原作者所有,如原作者对本站收录其作品有异义,请及时告知,本站将及时删除。如有其它疑问请与站长联系 站长:睿学
    粤ICP备09133177号