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

ASP.NET Discussion :

Affichage fichier serveur distant


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut Affichage fichier serveur distant
    Bonjour,

    J'ai stocké des fichiers dans un répertoire situé sur un serveur. J'aimerais savoir comment, en connaissant l'url du serveur, afficher la liste des fichiers se trouvant à ce niveau la.

    Par exemple: j'accede a mon serveur avec http://monserveur
    A ce niveau la se situe 3 fichiers, comment faire pour recuperer leur nom?

    On m'a dit que ce n'était pas possible directement pour des raisons de sécurité et qu'il fallait passer par un webservice.
    J'ai jamais fait de web services, est ce que vous pouvez m'expliquer ce que ca change?

    Merci!

  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
    La plupart du temps, la configuration du serveur interdit de lister le contenu d'un répertoire en HTTP... Si tu entres cette URL dans un navigateur, tu vois quoi ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    Quand j'entre l'adresse voila ce qu'il me ressort :

    strategicrsserver/StrategicRSServer - /

    --------------------------------------------------------------------------------

    vendredi, 5. décembre 2008 12:18 <dir> Articles et Stocks
    vendredi, 5. décembre 2008 12:18 <dir> Data Sources
    jeudi, 5. février 2009 11:24 2543437 Disponible à terme
    jeudi, 5. février 2009 11:24 1035207 Logo BMC avec Transparence.jpg
    jeudi, 5. février 2009 11:24 18412 strategic_logo véritable.jpeg
    jeudi, 5. février 2009 11:24 776908 Strategic_Puce.jpg
    jeudi, 5. février 2009 11:24 5210 TestLou


    --------------------------------------------------------------------------------
    Version 9.00.3073.00 de Microsoft SQL Server Reporting Services


    Et je veux récupérer le nom de ces fichiers.
    Merci

  4. #4
    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
    Ben il va falloir analyser le contenu du HTML pour en extraire le nom des fichiers...

    Tu ne peux pas y accéder en FTP ? Ce serait plus facile...

    http://msdn.microsoft.com/en-us/library/ms229716.aspx

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    comment est ce que je peux faire pour y acceder en ftp? (ftp.nom_de_mon_serveur ne fonctionne pas)
    Et si ce n'est pas possible comment analyser le contenu du html?

    Merci

  6. #6
    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
    Citation Envoyé par oclone Voir le message
    comment est ce que je peux faire pour y acceder en ftp? (ftp.nom_de_mon_serveur ne fonctionne pas)
    Ben j'en sais rien, c'est pas moi l'admin de ton serveur

    Citation Envoyé par oclone Voir le message
    Et si ce n'est pas possible comment analyser le contenu du html?
    Récupère le contenu de la page avec WebClient.DownloadString ou HttpWebRequest. Regarde le source HTML pour voir s'il n'y a pas des repères que tu peux utiliser dans le balisage. Ensuite tu peux extraire le texte à coup de String.IndexOf ou avec une expression régulière

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    ok, et est ce que c'est possible en passant par un web service en ecrivant qqc comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        [WebMethod]
        public string HelloWorld() {        
            DirectoryInfo dInf = new DirectoryInfo(Server.MapPath(FilesDirectory)).GetDirectories;
        }
    Bon je découvre les web services donc c'est pas encore très clair : est ce que je dois héberger ce web service sur le mm serveur ou est ce que je peux acceder a un serveur distant depuis ce webservice?

  8. #8
    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
    Oui, utiliser un WebService semble être une bonne option

    Citation Envoyé par oclone Voir le message
    est ce que je dois héberger ce web service sur le mm serveur ou est ce que je peux acceder a un serveur distant depuis ce webservice?
    Il faut l'héberger sur le même serveur, sinon tu te retrouves avec le même problème qu'avant...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    Bon j'ai essayé de faire ce que tu m'as dit en tapant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HttpWebRequest myReq =(HttpWebRequest)WebRequest.Create("http://strategicrsserver/strategicrsserver/Pages/Folder.aspx");
    Label1.Text = myReq.GetResponse().ToString();
    Qui m'amène à l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Le serveur distant a retourné une erreur : (401) Non autorisé. 
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.Net.WebException: Le serveur distant a retourné une erreur : (401) Non autorisé.
     
    Erreur source: 
     
     
    Ligne 58 :             //Label1.Text = s.HelloWorld();            
    Ligne 59 :             HttpWebRequest myReq =(HttpWebRequest)WebRequest.Create("http://strategicrsserver/strategicrsserver/Pages/Folder.aspx");
    Ligne 60 :             Label1.Text = myReq.GetResponse().ToString();
    Ligne 61 :         }         
    Ligne 62 :

  10. #10
    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
    Ben ça me semble assez clair... tu n'as pas le droit d'accéder à la page
    Il faut sans doute que tu fournisses un user/password
    Tu peux faire ça via la propriété Credentials de la webrequest

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    OK merci.

    J'ai essayé comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                HttpWebRequest myReq =(HttpWebRequest)WebRequest.Create("http://strategicrsserver/strategicrsserver/Pages/Folder.aspx");
     
                CredentialCache.DefaultNetworkCredentials.Domain = "domaine";
                CredentialCache.DefaultNetworkCredentials.Password = "user";
                CredentialCache.DefaultNetworkCredentials.UserName = "pass";
     
                myReq.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
     
                Label1.Text = myReq.GetResponse().ToString();
    Et ca me donne l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.Net.WebException: Le serveur distant a retourné une erreur : (500) Erreur interne du serveur.
     
    Erreur source: 
     
     
    Ligne 63 :             myReq.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
    Ligne 64 :                         
    Ligne 65 :             Label1.Text = myReq.GetResponse().ToString();
    Ligne 66 :         }         
    Ligne 67 :

  12. #12
    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
    Bizarre

    Par contre, ta façon d'utiliser les credentials est bizarre aussi... essaie plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                HttpWebRequest myReq =(HttpWebRequest)WebRequest.Create("http://strategicrsserver/strategicrsserver/Pages/Folder.aspx");
     
                myReq.Credentials = new NetworkCredentials("user", "password", "domaine");
     
                Label1.Text = myReq.GetResponse().ToString();

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    OK ca a l'air de marché sauf que la réponse que j'ai c'est :
    System.Net.HttpWebResponse alors que j'aimerais le contenu du fichier.
    Il faut utiliser une autre fonction pour ça?

  14. #14
    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
    GetResponse() renvoie un objet HttpWebResponse, pas une string.
    Pour récupérer le contenu, il faut faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
    Stream stream = myResp.GetResponseStream();
    StreamReader reader = new StreamReader(stream);
    Label1.Text = reader.ReadToEnd();
    reader.Close();
    Mais bon, ce serait plus simple avec WebClient...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WebClient wc = new WebClient();
    wc.Credentials = new NetworkCredentials("user", "password", "domaine");
    Label1.Text = wc.DownloadString("http://strategicrsserver/strategicrsserver/Pages/Folder.aspx");

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    OK, merci bcp pour ton temps.
    Bon a vrai dire maintenant je galère pour filtrer selon les élements que je veux, parce que je ne veux qu'afficher le nom des fichiers rdl.

    Ce qui m'arrangerait c'est d'avoir le code html pour faire une expression régulière du genre : a partir de "<a" jusqu'à "</a>" mais je n'ai aucune idée pour récupérer ce code html.
    Merci

  16. #16
    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
    Citation Envoyé par oclone Voir le message
    mais je n'ai aucune idée pour récupérer ce code html.
    Ben tu récupères quoi alors avec WebClient.DownloadString (ou HttpWebRequest) ?

Discussions similaires

  1. Affichage d'un fichier PDF sur un serveur distant
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/10/2010, 15h28
  2. ouverture fichier serveur distant
    Par warning_007 dans le forum Langage
    Réponses: 0
    Dernier message: 29/03/2010, 17h11
  3. Débugger un bug d'affichage sur serveur distant
    Par leFred dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 03/03/2009, 14h24
  4. Réponses: 0
    Dernier message: 21/08/2008, 06h04
  5. Envoyer fichier serveur distant
    Par Fabouney dans le forum C
    Réponses: 11
    Dernier message: 04/08/2006, 21h12

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