Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Bajar un archivo de www? (https://www.clubdelphi.com/foros/showthread.php?t=7336)

kolokol 12-02-2004 00:20:26

Bajar un archivo de www?
 
Que codigo me podria servir para bajarse un archivo de un servidor web?

jachguate 12-02-2004 03:42:13

Hola Kolokol...

en primer lugar te recomiendo leer la gúia de estilo de los foros, ya que no está de mas ser cordial para preguntar, tomando en cuenta que aqui quienes puedan responder tu pregunta son voluntarios que no reciben ningún tipo de remuneración por hacerlo.

En segundo lugar, notarás que has publicado la misma pregunta dos veces. No te preocupes, quizas se trate de un error involuntario y yo ya he eliminado una de las dos; sin embargo debes ser cuidadoso con eso.

Tampoco aportas datos suficientes de lo que queres conseguir o cual es tu problema para conseguirlo... por lo que entenderé que "bajarse un archivo" significa obtener una página de un servidor web; lo que podes conseguir limpiamente usando sockets o bien utilizando el método Get del componente TidHTTPClient. En la ayuda de este componente seguramente vas a encontrar información valiosa.

Hasta luego.

;)

DarkByte 12-02-2004 15:33:20

Otro componente que te puede servir es el WinInet, que publicó una vez la revista síntesis; te lo subo a mi servidor web y te lo descargas desde allí, avísame cuando te lo descarges para no ocupar espacio inecesario.

Te lo he puesto en Zip y Rar para que lo descarges en el formato que prefieras:

Formato ZIP
Formato RAR

Que nadie intente entrar en el dominio, que estoy diseñando la web y no hay nada. Insisto en que me avises cuando descarges el archivo. Muxas gracias

Descendents 12-02-2004 16:33:39

Haber lo que te ha dado dark dide no es el componente wininet, sino que utiliza wininet para descargar el archivo.Con wininet puedes hacer mas cosas desde FTP, etc... el componente se llama si no recuerdo mal idhttpfile.Pero me parece que si tienes delphi 6 en adelante te dara problemas con designintf y todo el follon este.Pero se puede solventar.

Con esta tienes una manera.


Otra es:
Código:

function Tform1.GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
begin
 Result:=False;
 sAppName := ExtractFileName(Application.ExeName);
 hSession := InternetOpen(PChar(sAppName),
                INTERNET_OPEN_TYPE_PRECONFIG,
              nil, nil, 0);
 try
  hURL := InternetOpenURL(hSession,
            PChar(fileURL),
            nil,0,0,0);
  try
  AssignFile(f, FileName);
  Rewrite(f,1);
  repeat
    InternetReadFile(hURL, @Buffer,
                    SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
  until BufferLen = 0;
  CloseFile(f);
  Result:=True;
  finally
  InternetCloseHandle(hURL)
  end
 finally
  InternetCloseHandle(hSession)
 end
end;


procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
 FileOnNet:='http://www.clubdelphi.com/';
 LocalFileName:='c:\archivo.htm';

 if GetInetFile(FileOnNet,LocalFileName)=True then
  ShowMessage('Descargado Correctamente')
 else
  ShowMessage('Error en la Descarga')
end;

Y una tercera es la que te ha dicho el compañero jachguate con las indy con el componente TidHTTPClient.

Ejemplo.

Código:

procedure TForm1.Button2Click(Sender: TObject);
var
  stream: Tfilestream;
begin
  stream:= TFileStream.Create('c:\archivo.htm',fmCreate);
  try
    idhttp1.Get('http://www.clubdelphi.com/',stream);
  except
    stream.Free;
    ShowMessage('Error en la Descarga');
    exit;
  end;
  stream.Free;
  ShowMessage('Descargado Correctamente')
end;

Las uses que necesites en cada caso no te las se decir ahora porque no me acuerdo.

Pero pueden ser las de las indy en su caso y wininet en los otros

Saludos y Suerte

DarkByte 12-02-2004 16:35:01

Oh, lo siento, es verdad, muxas gracias Descendents!, voy a buscar el componente y lo subiré

Descendents 12-02-2004 16:47:07

Perdon dark dide no,jeje que me equivoque,Perdón.

Quise decirDarkByte

Saludos

DarkByte 12-02-2004 16:52:38

xD, no tiene importancia Descendents; además, ese nick ya es hasta antiguo... me salieron muxa gente que se copió y me busqué uno nuevo... aún sigo usando este en ClubDelphi. Me estoy bajando un par de zips relacionados con WinInet del eMule, a ver si son alguno el componente este y doy ya con la solución.


La franja horaria es GMT +2. Ahora son las 21:09:55.

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