Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2005
locojoan locojoan is offline
Miembro
 
Registrado: mar 2004
Posts: 18
Poder: 0
locojoan Va por buen camino
Tamaño de archivo en internet

Hola. A ver si alguien me puede ayudar.
Quisiera saber como obtener el tamaño en bytes de un archivo que esta en internet. muchas gracias.
Responder Con Cita
  #2  
Antiguo 29-11-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Que está en internet, ¿qué quiére decir exactamente?, puédes descargarlo por http?, accedes mediante ftp?, está accesible para cualquiera?, está "oculto"?, está en algún lugar del mundo o en tu red local o en tu propio ordenador, pero quieres acceder por internet?, quiéres hacerlo con un programa en delphi?, accediendo mediante un cliente de ftp?, por telnet?... etc.
Responder Con Cita
  #3  
Antiguo 30-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

La siguiente función está hecha un tanto a bote pronto siguiendo los artículos (no todos, ni tampoco completamente) que sobre el API WinInet hay publicados en "La Web de JM". No recomiendo utilizar dicha función (aunque funciona, aparentemente) sino es antes leyendo y comprendiendo los artículos mencionados. Es claro que la función es muy mejorable, ya lo he dicho, pero, dejo al interesado que la mejore en cuanto pueda hacerse.

Código Delphi [-]
uses
  WinInet;

// Devuelve el tamaño (en Bytes) de un determinado
// archivo de Internet especificado por el parámetro URL.
//
function TamanoArchivoInternet(URL: string) : Longint;
var
  auxiliar: DWORD;
  longitud: DWORD;
  HUrl: HINTERNET;
  HOpen: HINTERNET;
  totalBytes: DWORD;
begin
  totalBytes := 0;
  HOpen := InternetOpen('Delphi Agent', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if (HOpen <> nil) then
  begin
    HUrl := InternetOpenUrl(HOpen, PChar(URL), nil, 0, INTERNET_FLAG_RELOAD, 0);
    if (HUrl <> nil) then
    begin
      auxiliar := 0;
      longitud := SizeOf(DWORD);
      if (not HttpQueryInfo(HUrl, HTTP_QUERY_CONTENT_LENGTH or
        HTTP_QUERY_FLAG_NUMBER, @totalBytes, longitud, auxiliar)) then
        RaiseLastOSError;
    end
    else
      RaiseLastOSError;
  end
  else
    RaiseLastOSError;
  if (HUrl <> nil) then
    InternetCloseHandle(HUrl);
  if (HOpen <> nil) then
    InternetCloseHandle(HOpen);
  Result := totalBytes;
end;
* Agradezco a JM sus interesantísimos y completísimos artículos y tutoriales que tiene publicados en su página Web.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 30-11-2005
locojoan locojoan is offline
Miembro
 
Registrado: mar 2004
Posts: 18
Poder: 0
locojoan Va por buen camino
No funciona bien siempre

esto es exactamente lo que quiero, pero lamentablemente no funciona bien esta funcion. hay veses que funciona bien y otras no. A ver si alguien me ayuda a mejorar y pulir la funcion.
Responder Con Cita
  #5  
Antiguo 30-11-2005
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Pero qué protocolo usa tu programa? FTP, HTTP, ... ?
__________________
l2prog.co.nr
Responder Con Cita
  #6  
Antiguo 30-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por locojoan
(...) lamentablemente no funciona bien esta funcion. hay veses que funciona bien y otras no.
Ya, pero, como espero que comprendas, no podemos adivinar qué error o errores te aparecen. ¿No podrías ser un poco más explícito? ¿Qué error te encuentras? ¿Cómo es eso de que a veces funciona y a veces no? ¿No te has parado a leer los artículos que he referido? La verdad, pides ayuda, pero, me da la sensación (disculpa si soy demasiado franco) de que quieres que se te haga la función y aquí paz y después gloria.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 30-11-2005 a las 15:43:24. Razón: Corrección del texto.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:56: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
Copyright 1996-2007 Club Delphi