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

VB.NET Discussion :

Problème avec téléchargements (WebClient)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 106
    Par défaut Problème avec téléchargements (WebClient)
    Bonjour à tous,

    J'ai un petit problème: J'utilise un WebClient pour faire des téléchargements automatisé (On entre seulement l'URL et il télécharge le fichier sur le bureau).

    Mon problème est de trouver le nom du fichier à télécharger.
    Je m'explique.

    Sur une URL comme celle-ci
    http://download.piriform.com/ccsetup301.exe
    Je n'ai qu'à extraire le ccsetup301.exe

    Mais sur une URL comme celle-là
    http://download.mozilla.org/?product...os=win&lang=fr
    Je ne suis pas capable d'en extraire le nom du fichier (Firefox Setup 3.6.13.exe)

    Avez-vous une idée comment procéder?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je ne pense pas que ce soit possible avec WebClient, mais tu peux le faire avec HttpWebRequest. Tu peux faire quelque chose comme ça : récupérer le nom du fichier avec une requête HEAD, puis utiliser WebClient normalement.

    Code C# : 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
    24
    25
    26
    27
    28
    29
    30
    31
    string url = "http://download.mozilla.org/?product=firefox-3.6.13&os=win&lang=fr";
    string fileName = GetFileName(url);
    string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    string path = Path.Combine(desktopPath, fileName);
    WebClient client = new WebClient();
    client.DownloadFile(url, path);
     
    ...
     
    string GetFileName(string url)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = WebRequestMethods.Http.Head;
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            // S'il y a un en-tête Content-Disposition, on l'utilise
            string disposition = response.Headers["Content-Disposition"];
            if (!string.IsNullOrEmpty(disposition))
            {
                string fileNamePart = disposition.Split(';').Select(s => s.Trim()).FirstOrDefault(s => s.StartsWith("filename="));
                if (!string.IsNullOrEmpty(fileNamePart))
                {
                    return fileNamePart.Substring("filename=".Length);
                }
            }
            // Sinon on utilise l'URI de la réponse (éventuellement redirigée)
            string responseUri = response.ResponseUri.AbsoluteUri;
            return Uri.UnescapeDataString(Path.GetFileName(responseUri));
        }
        return string.Empty;
    }

    Dans l'exemple que tu as donné (download de Firefox), on tombe dans le cas d'une redirection vers l'URI réelle du fichier. Par contre j'ai pas testé le cas du Content-Disposition, donc je sais pas si ça fonctionne bien...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 106
    Par défaut
    MERCI beaucoup tomlev!

    C'est exactement ce que je voulais et ça marche très bien!

    Merci.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2015, 09h04
  2. Problème avec le téléchargement forcé d'un fichier
    Par sunshine33 dans le forum Langage
    Réponses: 14
    Dernier message: 08/11/2006, 10h24
  3. [Système] Problème avec compteur de téléchargement
    Par Baptiste Wicht dans le forum Langage
    Réponses: 24
    Dernier message: 24/06/2006, 08h21
  4. Problème de téléchargement avec Windows XP pro
    Par bernard38 dans le forum Windows XP
    Réponses: 7
    Dernier message: 01/03/2006, 09h10
  5. Réponses: 4
    Dernier message: 06/01/2006, 10h45

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