Meine Homepage: http://www.tommstudio.com/
Das kürzlich entwickelte System benötigt eine Funktion zum Herunterladen von Dateien. Früher habe ich einen umständlichen API -Anruf mit BCB geschrieben, aber plötzlich erinnerte ich mich, dass es eine API gab, die erledigt werden konnte, also kam ich früh am Morgen. Diese API ist urdownloadtofile. Darüber hinaus können einige Steuerelemente von Delphi leicht heruntergeladen werden, z. Im Folgenden finden Sie detaillierte Codes, alle von CSDN. Ich habe sie alle hier sortiert, um einen einfachen Zugang zu allen zu erhalten.
verwendet urlmon; Funktion DownloadFile (Quelle, Dest: String ): boolean; Beginnen versuchen Ergebnis: = urdownloadtofile ( nil , pchar (Quelle), pChar (dest), 0, nil ) = 0; außer Ergebnis: = falsch ; Ende ; Ende ; If downloadFile ('http://www.borland.com/delphi6.zip,' c: /kylix.zip ') dann ShowMessage ('erfolgreich herunterladen') sonst showMessage ('erfolglos herunterladen') |
=====================================
Routine:
Verwendet urlmon, Shellapi; Funktion DownloadFile (SourceFile, Destfile: String): boolean; Beginnen versuchen Ergebnis: = urdownloadtofile (nil, pchar (SourceFile), pchar (destfile), 0, nil) = 0; außer Ergebnis: = falsch; Ende; Ende; Procedure tform1.button1.click (Absender: tobject); Const // URL -Standort SourceFile: = ' http://www.google.com/intl/de/images/home_title.gif'; // wo speichern die Datei Destfile: = 'c: /temp/google-image.gif'; Beginnen Wenn downloadFile (SourceFile, Destfile) dann Beginnen ShowMessage ('erfolgreich herunterladen!'); // Download -Bild in Ihrem Browser anzeigen Shellexecute (application.Handle, pchar ('offen'), pchar (destfile), pchar (''), nil , sw_normal) Ende anders ShowMessage ('Fehler beim Herunterladen' + SourceFile) Ende ; |
========================
Fügen Sie den folgenden Code hinzu:
Nmhttp1.inputFilemode: = Wahrheit; Nmhttp1.body: = 'lokaler Dateiname'; Nmhttp1.Header: = 'head.txt'; Nmhttp1.outputFilemode: = false ; Nmhttp1.ReportLevel: = status_basic; NMHTTP1.Proxy: = 'IP -Adresse des Proxy -Servers'; Nmhttp1.proxyport: = 'Portnummer des Proxy -Servers'; Mit nmhttp1.headerinfo do Beginnen Cookie: = ''; LocalMailAddress: = ''; LocalProgram: = ''; Referer: = ''; BenutzerID: = 'Benutzername'; Passwort: = 'Benutzerkennwort'; Ende ; Nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
Probieren Sie es aus, es gibt Beispiele für TNMHTTP -Steuerelemente im Verzeichnis von Delphi. NT4+, Win95+, IE3+, Sie können die URL -Monikerfunktion verwenden.
verwendet urlmon; ... Oleech (urdownloadtofile ( nil , 'url', 'Dateiname', 0, nil )); |
Sie können auch eine IbindStatusCallback -Implementierung übergeben, um den Download -Fortschritt zu verfolgen oder den abgebrochenen Download zu steuern. Ein einfacher Anlass kann in einem Satz erfolgen.
Übrigens verkaps der URL -Moniker die meisten URLs, anstatt Protokolle wie NMHTTP zu verkapsend, damit Sie UrldownloadToFile verwenden können, um HTTP-, FTP- und sogar lokale und LAN -Dateien sowie andere maßgeschneiderte Moniker wie MSSTORE (MSDN -Bibliotheksmonikor -Implementierung) herunterzuladen.
var DownloadFile: tFilESTREAM; begino DownloadFile: = tFilESTREAM.Create ('c: /aa.rar',fmcreate); Idhttp1.get ('http://www.sina.com.cn/download/aa.rar',Downloadfile); DownloadLoadFile.Free; Ende ; // -------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------- |
Programm endet