내 홈페이지 : http://www.tommstudio.com/
최근에 개발 한 시스템에는 파일을 다운로드 할 수있는 기능이 필요합니다. BCB를 사용하여 번거로운 API 호출을 작성했지만 갑자기 API가 수행 될 수 있다는 것을 기억했기 때문에 아침 일찍 검색을 시작했습니다. 이 API는 urldownloadTofile입니다. 뿐만 아니라 NMHTTP와 같은 일부 델파이 컨트롤을 쉽게 다운로드 할 수 있습니다. NMHTTP1.InputFileMode를 지정하십시오. 다음은 CSDN의 자세한 코드입니다. 모든 사람에게 쉽게 접근 할 수 있도록 여기에 정렬했습니다.
Urlmon을 사용합니다 . 함수 다운로드 파일 (소스, 데스트 : 문자열 ) : 부울; 시작하다 노력하다 결과 : = urldownloadTofile ( nil , pchar (source), pchar (dest), 0, nil ) = 0; 제외하고 결과 : = 거짓 ; 끝 ; 끝 ; if downloadfile ( 'http://www.borland.com/delphi6.zip,'c : /kylix.zip ') showmessage ( '성공적인 다운로드') else showmessage ( '실패 다운로드') |
===============================
루틴:
Urlmon, Shellapi를 사용합니다. 함수 다운로드 파일 (SourceFile, DestFile : String) : 부울; 시작하다 노력하다 결과 : = urldownloadTofile (nil, pchar (sourcefile), pchar (destfile), 0, nil) = 0; 제외하고 결과 : = 거짓; 끝; 끝; 절차 tform1.button1.click (sender : tobject); Const // URL 위치 SourceFile : = ' http://www.google.com/intl/de/images/home_title.gif'; // 파일을 저장하는 위치 destfile : = 'c : /temp/google-image.gif'; 시작하다 DownloadFile (SourceFile, DestFile) 인 경우 시작하다 showmessage ( '성공적으로 다운로드!'); // 브라우저에서 다운로드 된 이미지를 표시합니다 ShellexeCute (Application.Handle, PCHA ( 'Open'), PCHA (DestFile), PCHA ( ''), NIL , SW_NORMAL) 끝 또 다른 showmessage ( ' + sourcefile을 다운로드하는 동안 오류) 끝 ; |
======================
다음 코드 추가 :
NMHTTP1.INPUTFILEMODE : = 진실; nmhttp1.body : = '로컬 파일 이름'; nmhttp1.header : = 'head.txt'; nmhttp1.outputfilemode : = false ; nmhttp1.ReportLevel : = status_basic; nmhttp1.proxy : = '프록시 서버의 IP 주소'; nmhttp1.proxyport : = '프록시 서버의 포트 번호'; nmhttp1.HeaderInfo 와 함께 시작하다 쿠키 : = ''; LocalMailAddress : = ''; LocalProgram : = ''; 참조 : = ''; userId : = '사용자 이름'; 비밀번호 : = '사용자 비밀번호'; 끝 ; nmhttp1.get ( ' http://www.abcdefg.com/software/a.zip'); |
델파이 디렉토리에 tnmhttp 컨트롤의 예가 있습니다. NT4+, Win95+, IE3+, URL 모니 커 기능을 사용할 수 있습니다.
Urlmon을 사용합니다 . ... eleCheck (urldownloadTofile ( nil , 'url', 'filename', 0, nil )); |
IBINDSTATUSCALLBACK 구현을 통과하여 다운로드 진행 상황을 추적하거나 중단 된 다운로드를 제어 할 수도 있습니다. 간단한 행사는 한 문장으로 수행 할 수 있습니다.
BTW, URL 모니 커는 NMHTTP와 같은 프로토콜을 캡슐화하는 대신 대부분의 URL을 캡슐화하므로 URLDownLoadTofile을 사용하여 HTTP, FTP 및 Local 및 LAN 파일을 다운로드 할 수 있으며 MSITSTORE (MSDN 라이브러리 문서 모니커 구현)와 같은 다른 사용자 정의 모니 커입니다.
var 다운로드 파일 : tfilestream; 시작 downloadfile : = tfilestream.create ( 'c : /aa.rar' ,fmcreate); idhttp1.get ( 'http://www.sina.com.cn/download/aa.rar', downloadfile); DownloadLoadfile.free; 끝 ; // ---------------------------------------------------- --------------------------------------------------------- ------------------------------- |
프로그램이 끝납니다