首页 技术 正文
技术 2022年11月14日
0 收藏 907 点赞 3,748 浏览 2242 个字

有个API就是UrlDownloadToFile。不仅如此,Delphi的一些控件也可以轻松实现下载,如NMHTTP,指定NMHTTP1.InputFileMode := ture; 指定Body为本地文件名,指定Get就可以下载了。

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 := ”https://img.zhankr.net/aqgj1uqv3dh156104.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;

http://blog.csdn.net/zang141588761/article/details/51934072

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297