IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Taille d'un fichier distant via le web


Sujet :

Web & réseau Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut Taille d'un fichier distant via le web
    Salut à tous.

    J'aimerais savoir comment récupérer la taille d'un fichier qui se trouve sur un serveur distant via internet (HTTP). J'utilise InternetReadFile pour télécharger; ça marche plutôt bien mais je souhaite afficher une ProgressBar pour faire patienter l'utilisateur (donc il me faut la taille du fichier ...)

    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    A l'aide d'Indy : TIdHTTP.Head, la taille se trouvant dans TIdHTTP.Response.ContentLength.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    A l'aide d'Indy : TIdHTTP.Head, la taille se trouvant dans TIdHTTP.Response.ContentLength.
    J'avais trouvé une autre solution un peu plus compliquée avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function WebFileSize(URL: string): cardinal;
    var
        hInet, hURL: HINTERNET;
        len: cardinal;
        index: cardinal;
    begin
        result := cardinal(-1);
        hInet := InternetOpen(PChar(application.title), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
        index := 0;
        if hInet <> nil then
        try
            hURL := InternetOpenUrl(hInet, PChar(URL), nil, 0, 0, 0);
            if hURL <> nil then
            try
                len := sizeof(result);
                if not HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER, @result, len, index) then RaiseLastOSError;
            finally
                InternetCloseHandle(hURL);
            end;
        finally
            InternetCloseHandle(hInet)
        end;
    end;
    Ainsi WebFileSize('http://monsite/monfichier.txt') me donne la taille du fichier à télécharger. Cool !



    Andnotorn ta solution est plus simple mais fait appel à un composant.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/06/2011, 02h50
  2. Obtenir la taille d'un fichier distant.
    Par Cravis dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/09/2007, 15h31
  3. Connaitre la taille d'un fichier distant
    Par pipopipo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/08/2007, 11h01
  4. Obtenir la taille d'un fichier selectionné via input
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/06/2007, 08h54
  5. Ecrire fichier distant via afp
    Par crochepatte dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 24/01/2007, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo