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

Dotnet Discussion :

[C#.NET 2.0] récupérer des fichiers par http


Sujet :

Dotnet

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut [C#.NET 2.0] récupérer des fichiers par http
    Bonjour,

    j'ai une applic en php qui me crée des fichier xml contenant des infos...
    je dois les récupérer via mon applic asp.net

    en local, pas de problemes, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (string file in System.IO.Directory.GetFiles(chemin))
    et l'affaire est faite, cela fonctionne tres bien.

    Mais maintenant, le répertoire du site web dans lequel se trouve les fichiers xml est est situé dans une zone dans laquelle les partages windows ne fonctionnent pas.
    Il faut donc trouver une solution sécurisée pour récuperér les fichiers
    via http.

    Suivant un conseil, il s'agirait de récupérer en .NEt une liste de fichiers via http créée grâce à la fonction php readdir

    je ne vois absolument pas comment faire cela

    pouvez vous m'aider?

    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Salut

    Le problème est de connaitre le nom des fichiers à récupérer sur le serveur web distant apparemment.
    La fonction php readdir va récupérer dans un tableau la liste des fichiers dans un répertoire exactement comme Directory.GetFiles.
    Ensuite à toi de créer un fichier avec ça, en xml ou autre (sérialize etc..).

    Coté web local en .net tu récupère et parse ce ficher et tu fais une boucle pour récupérer les fichiers cibles 1 à 1.

    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
     
    serveur local ASP    |    serveur distant PHP
    ------------------------------------------
    demande la liste  ---->  readdir()
                      <---- liste encodée (URL fichier 1; url fichier2 ...)
     
    parse la liste
    boucle for each :
    demande fichier 1 ----> 
                      <---- fichier 1
     
    demande fichier 2 ----> 
                      <---- fichier 2
     
    ....

    Niouze.

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    ok pour le principe, ce que je pensais ressemblait tres fort à ta proposition.

    Mais là ou je coince surtout c'est concretement au niveau du code, que je ne sais pas comment récupérer un fichier via http...

    sur le net je ne trouve absolument rien.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    ok, j'avais pas compris.
    regarde du coté de httpwebrequest / httpwebresponse

    exemple en VB (sorry, pas encore eu le temps de me mettre au c# )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim url = "http://< ton URL.... >"
    Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
    Dim myWebResponse As WebResponse = myHttpWebRequest.GetResponse()
    Dim myStream As Stream = myWebResponse.GetResponseStream()
    Dim myStreamReader As StreamReader = New StreamReader(myStream)
    Dim strHTML As String = myStreamReader.ReadToEnd
     
     
    myWebResponse.Close()
    tu te retrouve avec le contenu de la page dans strHML ( variable string )

    Gis.

  5. #5
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    ok merci...

    je me retrouve bien avec le contenu de la page, sur lequel je génère la liste des fichiers...

    Maintenant, seconde étape, comment puis je faire pour récupérer un fichier à partir de son url?

  6. #6
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    Citation Envoyé par cortex024
    ok merci...

    je me retrouve bien avec le contenu de la page, sur lequel je génère la liste des fichiers...

    Maintenant, seconde étape, comment puis je faire pour récupérer un fichier à partir de son url?
    Je te conseille d'utilise la classe WebClient.
    Elle est TRES facile a utiliser. Elle possede des methodes synchrones (DownloadFile(...), UploadFile(...)) aussi bien que ses analogues asynchrones (DownloadFileAsync(...), et les evenments correspondants - DownloadProgressChanged, DownloadFileCompleted).
    Tous simplement un bijou.

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

Discussions similaires

  1. [SSH2] Récupérer des fichiers par sftp
    Par johnson95 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/05/2008, 00h13
  2. [ADO.Net][C#] Comment récupérer des infos d'une table SQL ?
    Par lamojuli dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/01/2006, 16h00
  3. Récupérer des données par LDAP
    Par wil4linux dans le forum ASP
    Réponses: 3
    Dernier message: 14/09/2005, 12h11
  4. Récupérer des fichier
    Par j2zetka dans le forum Applets
    Réponses: 6
    Dernier message: 16/11/2004, 16h32
  5. [VB.NET] Classe qui pilote des Fichier .INI
    Par sygale dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2004, 20h04

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