Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - download file
Forum - Delphi - download file

Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 15:53
Venerdì, 04/06/2010
salve,
ho un problema quando scarico i file da internet con le relative  funzioni

Sorgente:= 'http://systemgvp.altervista.org/tritone/Trit.exe';
Destinazione:= Cartella+'Trit.exe';
DownloadFile(Sorgente, Destinazione)

oppure con il controllo indy IdFTP

IdFTP1.Host:= 'systemgvp.altervista.org';
  IdFTP1.Username:='***';
  IdFTP1.Password:='***';
  IdFTP1.Connect;  //connessione
  IdFTP1.Get('/tritone/Trit.zip',Destinazione);
  IdFTP1.Abort;    //disconnessione
  ShowMessage(pchar('File trasferito'));

con entrambi i metodi l'operazione viene completata norlmalmente ma il
file risulta corrotto, col primo la dimensione varia di poco di quella
giusta e l'altro si ferma a circa un terzo. Perchè? premetto che per file
da poche centinaia di kb entrambe i metodi funzionano egregiamente.


PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 21:35
Martedì, 08/06/2010
Penso, anche se non son sicuro, che si possa fare anche così.

Codice sorgente - presumibilmente Delphi

  1. uses
  2.   URLMon, ShellApi;
  3.  
  4. function DownloadFile(SourceFile, DestFile: string): Boolean;
  5. begin
  6.   try
  7.     Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
  8.   except
  9.     Result := False;
  10.   end;
  11. end;
  12.  
  13.  
  14. procedure TForm1.Button1Click(Sender: TObject);
  15. const
  16.   SourceFile = 'http://altervista.org/Trit.exe';
  17.   DestFile = 'c:.............Trit.exe';
  18. begin
  19.   if DownloadFile(SourceFile, DestFile) then
  20.   begin
  21.     ShowMessage('Download succesful!');
  22.     ShellExecute(Application.Handle, PChar('open'), PChar(DestFile),
  23.       PChar(''), nil, SW_NORMAL)
  24.   end
  25.   else
  26.     ShowMessage('Error while downloading ' + SourceFile)
  27. end;


PM Quote
Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 21:49
Martedì, 08/06/2010
no, non funziona perchè è quello che già faccio col primo metodo

PM Quote