Minha página inicial: http://www.tommstudio.com/
O sistema que desenvolvi recentemente requer uma função para baixar arquivos. Eu costumava escrever uma chamada de API complicada usando o BCB, mas de repente lembrei que havia uma API que poderia ser feita, então cheguei a procurar de manhã cedo. Esta API é URLDOWNLOADTOFILE. Além disso, alguns controles do Delphi também podem ser baixados facilmente, como o NMHTTP, especifique nmhttp1.inputfilemode: = Ture; Os seguintes são códigos detalhados, todos da CSDN. Eu os classifiquei todos aqui para facilitar o acesso a todos.
usa urlmon; Função DownloadFile (fonte, dest: string ): boolean; Começar tentar Resultado: = urldownloadtofile ( nil , pchar (fonte), pchar (dest), 0, nil ) = 0; exceto Resultado: = false ; fim ; fim ; Se Downloadfile ('http://www.borland.com/delphi6.zip,' c: /kylix.zip ') então ShowMessage ('download bem -sucedido') else showmessage ('download sem sucesso') |
==================================
Rotina:
Usa urlmon, shellapi; Função DownloadFile (Sourcefile, Destfile: String): Boolean; Começar tentar Resultado: = URLDOWNLOADTOFILE (NIL, PCHAR (OROURFILE), PCHAR (DESTFILE), 0, NIL) = 0; exceto Resultado: = false; fim; fim; Procedimento TForm1.Button1.Click (remetente: Tobject); const // Localização da URL Sourcefile: = ' http://www.google.com/intl/de/images/home_title.gif'; // onde salvar o arquivo Destfile: = 'c: /temp/google-image.gif'; Começar Se downloadfile (fonte de origem, destfile) então Começar ShowMessage ('Download bem -sucedido!'); // Mostrar imagem baixada em seu navegador Shellexecute (Application.Handle, PChar ('Open'), PChar (Destfile), PChar (''), NIL , SW_NORMAL) fim outro ShowMessage ('Erro ao baixar' + Sourcefile) fim ; |
========================
Adicione o seguinte código:
Nmhttp1.inputfilemode: = verdade; Nmhttp1.body: = 'Nome do arquivo local'; Nmhttp1.header: = 'head.txt'; Nmhttp1.outputFilemode: = false ; Nmhttp1.ReportLevel: = status_basic; Nmhttp1.proxy: = 'Endereço IP do servidor proxy'; Nmhttp1.proxyport: = 'Número da porta do servidor proxy'; Com nmhttp1.headerinfo do Começar Cookie: = ''; LocalmailAddress: = ''; Programa local: = ''; REFERENTE: = ''; UserID: = 'Nome do usuário'; Senha: = 'Senha do usuário'; Fim ; Nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
Experimente, existem exemplos de controles TNMHTTP no diretório de Delphi. NT4+, Win95+, IE3+, você pode usar a função do apelido de URL.
usa urlmon; ... Olecheck (urldownloadtofile ( nil , 'url', 'nome do arquivo', 0, nil )); |
Você também pode passar em uma implementação do IbindStatuscallback para rastrear o Progresso do Download ou controlar o download abortado. Uma ocasião simples pode ser feita em uma frase.
BTW, o apelido de URL encapsula a maioria dos URLs, em vez de encapsular protocolos como o NMHTTP, para que você possa usar o UrlDownLoadTofile para baixar o HTTP, FTP e até os arquivos locais e LAN, além de outros apelidos personalizados, como MSITStore (MSDN Library Document implementation).
var Downloadfile: tfilestream; Beginio Downloadfile: = tfilestream.create ('c: /aa.rar'.fmcreate); Idhttp1.get ('http://www.sina.com.cn/download/aa.rar'.downloadfile); Downloadlloadfile.free; fim ; // -------------------------------------------------- -------------------------------------------------------- ----------------------------- |
Programa termina