Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Comprobar la existencia de un archivo en internet (https://www.clubdelphi.com/foros/showthread.php?t=67625)

wiwaedu 27-04-2010 01:53:07

Comprobar la existencia de un archivo en internet
 
Buenas Noches,

Me gustaría saber si existe alguna forma de saber si existe un archivo en internet antes de proceder a su descarga a través de TDownloadURL. O al menos alguna forma de controlar el error para que no aparezca el mensaje de que la URL no existe.

El código que uso es este: :D
Código:

procedure TImpBL.DBGrid1CellClick(Column: TColumn);
begin
if FileExists(rutainst+'data\images\sets\'+DM1.QBuscaITEMID.Text+'.jpg') then
 begin
    PreviewImg.Picture.LoadFromFile(rutainst+'data\images\sets\'+DM1.QBuscaITEMID.Text+'.jpg');
 end else
 begin
    ProgressBar1.Position := 0;
    ProgressBar1.Visible := True;
    with TDownloadURL.Create(self) do
  try
    URL:='WWW-PAGINAWEB-COM/SL/'+DM1.QBuscaITEMID.Text+'.jpg';
    FileName := rutainst+'data\images\sets\'+DM1.QBuscaITEMID.Text+'.jpg';
    OnDownloadProgress := URL_OnDownloadProgress;
    ExecuteTarget(nil) ;
  finally
    Free;

  end;
  ProgressBar1.Visible := False;
  PreviewImg.Picture.LoadFromFile(rutainst+'data\images\sets\'+DM1.QBuscaITEMID.Text+'.jpg');
 end;
end;

Aclaraciones:
Código:

DM1.QBuscaITEMID.Text es un Query de ADO.

rutainst := ExtractFilePath(ParamStr(0));

Mas que nada lo quiero saber por que las imagenes que intento descargar no siempre estan en .jpg, a veces estan en .gif, y otras no existen. :confused:

Saludos y futuras Gracias!! :)

Ñuño Martínez 27-04-2010 09:10:24

Todos los protocolos de red devuelven códigos de error o confirmación junto con los datos al hacer una petición, y entre las peticiones no válidas está la de solicitar un archivo que no exista. Símplemente tienes que comprobar el código devuelto y si este se corresponde con el código de "no existe el archivo". Por ejemplo, en el protocolo HTTP este código es el conocido error 404.

Ojo, que FileExists únicamente suele funcionar para archivos locales.


La franja horaria es GMT +2. Ahora son las 13:03:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi