Entwickler-Ecke

Internet / Netzwerk - Wie kann man mit IDHTTP files downloaden ?


markus\win32 - Fr 27.09.02 21:12
Titel: Wie kann man mit IDHTTP files downloaden ?
Hallo
ich würde gerne automatisch ein paar files downloaden,
bei Dephi 5 wrs ja noch ganz einfach mit der NMHTTP komponente,
könnte mir lemand ein kleines beispiel schreieben für:
download von http://www.xyz.de/file.zip nach c:\file.zip (nur so als beispiel)

danke markus


DeCodeGuru - Fr 27.09.02 21:20

wenn du nur ein paar kleine datein runterladen willst, kannst du das mit URLDownloadToFile machen.

Hier ist nochmal ein Auszug aus der PSDK:

Zitat:
Downloads bits from the Internet and saves them to a file.

Syntax


Quelltext
1:
2:
3:
4:
5:
6:
HRESULT URLDownloadToFile(          LPUNKNOWN pCaller,
    LPCTSTR szURL,
    LPCTSTR szFileName,
    DWORD dwReserved,
    LPBINDSTATUSCALLBACK lpfnCB
);


Parameters

pCaller
Pointer to the controlling IUnknown interface of the calling Microsoft® ActiveX® component (if the caller is an ActiveX component). If the calling application is not an ActiveX component, this value can be set to NULL. Otherwise, the caller is a Component Object Model (COM) object that is contained in another component (such as an ActiveX control within the context of an HTML page). This parameter represents the outermost IUnknown of the calling component. The function attempts the download within the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.
szURL
Pointer to a string value containing the URL to be downloaded. Cannot be set to NULL.
szFileName
Pointer to a string value containing the name of the file to create for bits that come from the download.
dwReserved
Reserved. Must be set to 0.
lpfnCB
Pointer to the caller's IBindStatusCallback interface. URLDownloadToFile calls this interface's IBindStatusCallback::OnProgress method on a connection activity, including the arrival of data. IBindStatusCallback::OnDataAvailable is never called. Implementing IBindStatusCallback::OnProgress allows a caller to implement a user interface or other progress monitoring functionality. It also allows the download operation to be canceled by returning E_ABORT from the IBindStatusCallback::OnProgress call. This can be set to NULL.

Return Value

Returns one of the following values.

E_OUTOFMEMORY The buffer length is invalid or there was insufficient memory to complete the operation.
S_OK The operation succeeded.


M4EiB - Fr 27.09.02 22:01

mit idhttp geht es so:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
 buffer:tfilestream;
begin

 buffer:=tfilestream.create('c:\file.zip',fmCreate,fmShareExclusive);

try
 idhttp1.get('http://www.xyz.de/file.zip',buffer);
except
end;

 buffer.free


markus\win32 - Fr 27.09.02 22:02
Titel: danke
danke, aber wie wärs mit n paat zeilen wie
idhttp. (...)
...

damit könnte ich mehr anfangen, hab mit den Indy Komponenten nämlich noch nix gemacht


markus\win32 - Fr 27.09.02 22:03

oh lol hat sich erledigt, danke