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

 .NET Discussion :

Téléchargement Fichier_ System.Net [C#]


Sujet :

.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Téléchargement Fichier_ System.Net
    Bonjour,

    dans mon entreprise, nous disposons d'un abonnement a un outil de prise en main (NTR).

    L'utilisation est simple,ntr génère un numéro du type 12121212, ce qui constitue une Url du type https://app/ntrglobal.com/xx/xx/12121212 si je pointe sur cette url je télécharge le fichier .exe

    Donc ce que j'essaie de faire, c'est tout simplement en saisissant le numéro dans une input, d'aller télécharger le fichier .exe.

    Mais sans succés.

    cad : aucune erreur, le fichier se créer bien dans le répertoire demandé, mais il fait 0Koctet.

    Par contre si je pointe vers une url pour tester le téléchargement d'un .pdf ou autre, ça fonctionne.

    le code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void button1_Click(object sender, EventArgs e)
            {
                WebClient wc = new WebClient();
                wc.DownloadFileAsync(new Uri("https://app.ntrglobal.com/en/code/20424044"), @"c:\tmp\test.exe");
     
            }
    le plus fort c'est si je CTRL+clic sur le lien directement dans VisualStudio le telechargement se lance bien .

    Si l'un de vous à une idée, je suis preneur merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bizarre. Vérifie quand même que tu as tous les droits (écriture) nécessaires à ce répertoire ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    hello,

    oui j'ai bien tous les droits dans le sens, ou en ne changeant que :
    - l'url
    - l'extension du fichier (c:\tmp\test.pdf)

    je télécharge un .pdf au hasard sur internet, et tout fonctionne correctement.

    Par contre je pense que l'url donnée par NTR "https://app.ntrglobal.com/en/code/20424044" n'est qu'une url de transition qui permet de générer l'executable

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon peut-être qu'il n'aime pas les .exe. Qui sait peut-être que ton antivirus bloque le téléchargement

    Tu peux essayer un truc simple mettre .tmp comme extension temporaire et une fois le téléchargement terminé tu remets le fichier en .exe.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Sinon, pour tracer ce qu'il se passe au niveau réseau (protocole, proxy, etc...), tu peux utiliser un outil comme fiddler (gratuit) (pour voir ce qui se passe avec le browser, et ensuite ce qui ne va pas avec ton prog)
    Mais ce qui me trouble dans ton code c'est que tu n'attends pas la fin de ton téléchargement... Le téléchargement est lancé, mais on ne sait pas s'il finit!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void button1_Click(object sender, EventArgs e)
            {
                WebClient wc = new WebClient();
                wc.DownloadFileCompleted += DownloadFileCompleted ;
                wc.DownloadFileAsync(new Uri("https://app.ntrglobal.com/en/code/20424044"), @"c:\tmp\test.exe");
     
            }
     
            void DownloadFileCompleted (object sender, AsyncCompletedEventArgs e)
            {
    //fin du processus, on peut tester e.Error
            }

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Apparemment en utilisant l'autodétection de proxy (par défaut pour webclient) ça serait hyper lent....
    Un article intéressant concernant la config du proxy et le '/' de fin.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos retours d'info.

    Pour ce qui est du problème j'ai trouvé cette nuit, en soi il n'y à pas de problème, j'explique :

    Comme je le supposais, l'url fournit par ntr "https://app.ntrglobal.com/en/code/20424044" n'est qu'une Url qui va générer un .exe à partir du moment ou elle sera entierement chargé, une fois chargée elle génère le fameux fichier exe, qui est déposé à une autre adresse, pour finir on est redirigé vers cette nouvelle Url afin de débuter le download.

    En résumé : je ne pouvais pas téléchargé de fichier via webclient.downloadfileAsync, puisque le fichier n'existait pas encore, et de plus il ne se trouvait pas a cette url.

    J'ai donc fait un webclient.downloadData, pour activer l'url est permettre au serveur de générer le fichier.

    Suivi d'un WebClient.downloadFile sur la nouvelle URL.

    Par souci de clarté je posterai le code demain. Merci sujet résolu.

    Comme promis :

    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
     
     
     string uri = "https://app.ntrglobal.com/en/code/" + tb_number.Text;
                    WebClient wc = new WebClient();
                    wc.DownloadDataAsync(new Uri(uri));
                    wc.DownloadDataCompleted += new DownloadDataCompletedEventHandler(wc_DownloadDataCompleted);
                }
                else
                {
                    lbl_download_complete.Text = "VEUILLEZ SAISIR VOTRE CODE,SVP";
                }
     
            }
     
            void wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
            {
                string uriexe = "https://mod.ntrglobal.com/admin2_eu.modrq/p=rcc_aio.exe/cd=/NTRcloud_https_en_"+tb_number.Text+".exe&b=18";
                WebClient webClient = new WebClient();
                webClient.DownloadFileAsync(new Uri(uriexe), @"c:\tmp\ntrcloud_https_en_"+tb_number.Text+".exe");
                webClient.DownloadProgressChanged += webClient_DownloadProgressChanged;
                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);

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

Discussions similaires

  1. accession au namespace System.Net.Mail
    Par ninsekh dans le forum C#
    Réponses: 5
    Dernier message: 22/08/2007, 10h55
  2. system.net + smtp mail
    Par loicbar dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/06/2007, 12h54
  3. Réponses: 3
    Dernier message: 11/02/2007, 19h30
  4. [2.0] pourquoi je n'ai pas using System.Net.NetworkInformation?
    Par lykim1982 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2007, 08h20
  5. [ASP.Net] System. Net. Mail
    Par beowax dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2006, 09h05

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