国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

用Delphi實(shí)現(xiàn)文件下載的幾種方法

2019-11-18 17:57:27
字體:
供稿:網(wǎng)友

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

筆者最近開發(fā)的系統(tǒng)中需要寫一個(gè)下載文件的功能。以前用BCB調(diào)用API寫的很煩瑣,忽然想起有一個(gè)API就可以搞定了,于是一大早就來搜索。這個(gè)API就是UrlDownloadToFile。不僅如此,Delphi的一些控件也可以輕松實(shí)現(xiàn)下載,如NMHTTP,指定NMHTTP1.InputFileMode := ture; 指定Body為本地文件名,指定Get就可以下載了。下面是詳細(xì)代碼,均出自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.zShowMessage('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 := 'http://www.google.com/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;


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

加入如下代碼:


NMHTTP1.InputFileMode := ture;
NMHTTP1.Body := '本地文件名';
NMHTTP1.Header := 'Head.txt';
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
NMHTTP1.Proxy := '代理服務(wù)器的IP地址';
NMHTTP1.ProxyPort := '代理服務(wù)器的端口號(hào)';
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));


其中最后一個(gè)參數(shù)你還可以傳入一個(gè)IBindStatusCallback的實(shí)現(xiàn)以跟蹤下載進(jìn)度或控制中止下載。簡(jiǎn)單的場(chǎng)合一句話就搞定了。

BTW, URL Moniker封裝了大多數(shù)URL,而不是像NMHTTP那樣封裝協(xié)議,因此你可以用URLDownloadToFile下載HTTP,F(xiàn)TP甚至本地文件和局域網(wǎng)文件,還有其他的custom moniker,比如MSITSTORE(MSDN Library的文檔moniker實(shí)現(xiàn))。



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;

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


程序結(jié)束


上一篇:李維看Delphi2006(DeXter)

下一篇:Delphi的Hint(2)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 广南县| 迭部县| 宝丰县| 渭源县| 汝南县| 苍溪县| 舟曲县| 陆良县| 观塘区| 新乐市| 凤凰县| 天柱县| 漳平市| 北安市| 仁怀市| 庄浪县| 东丰县| 炉霍县| 大连市| 长岛县| 普宁市| 南岸区| 金沙县| 沅陵县| 进贤县| 肥东县| 齐齐哈尔市| 格尔木市| 乌兰浩特市| 胶州市| 宣城市| 定日县| 巢湖市| 雷山县| 大安市| 南阳市| 南城县| 芜湖县| 大港区| 灵寿县| 乡城县|