知识大全 用Delphi实现文件下载的几种方法

Posted 文件

篇首语:愿你在孤独难熬的时光里,始终没有辜负那个拼命的自己。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Delphi实现文件下载的几种方法相关的知识,希望对你有一定的参考价值。

用Delphi实现文件下载的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

uses UrlMon; function DownloadFile(Source Dest: string): Boolean; begin try Result := UrlDownloadToFile(nil PChar(source) PChar(Dest) nil) = ; except Result := False; end; end; if DownloadFile( // borland /delphi 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) nil) = ; except Result := False; end; end;

procedure TForm Button Click(Sender: TObject); const // URL Location SourceFile := // google /intl/de/images/home_title 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; 加入如下代码

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

  试试吧 Delphi的目录中有TNMHTTP控件的例子 NT + Win + IE + 你可以用URL Moniker的功能

uses URLMon;

OleCheck(URLDownloadToFile(nil URL Filename nil));

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

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

cha138/Article/program/Delphi/201311/24713

相关参考