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

C# Discussion :

Ouvrir un fichier d'un serveur distant en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 48
    Par défaut Ouvrir un fichier d'un serveur distant en c#
    Bonjour,

    J'ai un fichier "file.txt" se trouvant dans un serveur distant http://D-145832:8080/Documents/
    On peux accéder à ce réseau avec les identifiants "user1" et "pwd".
    J'ai essayé d'utiliser webdav mais il permet de télécharger des fichiers pas de les ouvrir directement.
    Quelqu'un aurait-il un idée ou un bout d'exemple?

    Merci d'avance.

    Cordialement

  2. #2
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    Bonjour,

    Pour toi pouvoir ouvrir le fichier tu doit de toute manière télécharger ce fichier
    sur ta machine. Admettons que tu aies une routine qui quand tu double click sur le fichier celui ci se télécharge, une fois télécharger il s'ouvre automatiquement, tu le modifie et quand tu le ferme ou sauvegarde tu envoie le fichier sur le serveur. Tu est obligée de télécharger le fichier en question pour toi pouvoir le modifier.

    cordialement.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 48
    Par défaut
    Du coup j'utilise webdav et j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     string license = @"<?xml version='1.0' encoding='........SQ=]]></Signature></License>";
                WebDavSession session = new WebDavSession(license);
                session.Credentials = new NetworkCredential("useer", "pwd");
                IFolder folder = session.OpenFolder(new Uri("http://fr-F467125:8080/Documents"));
                IResource resource = folder.CreateResource("Mytest.txt");
                resource.Upload("C:\\Mytest.txt");

    Mais j'ai cette exception:
    Une exception non gérée du type 'ITHit.WebDAV.Client.Exceptions.NotImplementedException' s'est produite dans ITHit.WebDAV.Client.dll

    Ya t'il une configuration webdav coté serveur à mettre en place pour corriger cela?

    Merci d'avance

  4. #4
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    Essaye avec ce code de mettre en place le download de fichier :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Stream localStream = new FileStream([CheminVersFichierLocal], FileMode.Create);
     
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(path);
                request.Timeout = timeOut;
                request.KeepAlive = false;
                request.Credentials = new NetworkCredential(user,pass);
                request.Method = "GET";
                request.PreAuthenticate = true;
                request.ContentLength = 0;
    request.Headers.Add("Translate", "F");
    request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
     
    HttpWebResponse serverResponse = (HttpWebResponse)request.GetResponse();
     
    long length = Convert.ToInt64(serverResponse.GetResponseHeader("Content-Length"));
                                    Stream serverRead = serverResponse.GetResponseStream();
     
                                    if (serverRead != null)
                                    {
                                        try
                                        {
                                            Transfert(request.RequestUri, serverResponse.GetResponseStream(), localStream, false);
     
                                            return new string[] { "true" };
                                        }
                                        finally
                                        {
                                            ReleaseStream(ref serverRead);
                                        }
                                    }
    path = chemin vers ta ressource sur ton serveur
    localStream = flux vers ton fichier local

    d'autre stream sont a libérer mais avec le code que tu as la sa devrait t aider.

    Après je ne sais pas comment tu as configurer ton webdav je te conseil ce tuto pour ce faire : http://www.mkyong.com/apache/how-to-...2-2-x-windows/

    EDIT : en webdav tu n'a pas de notion de session

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 48
    Par défaut
    Merci pour le bout de code mais je me rend compte que c'est vraiment l'accès au serveur qui problème pour l'instant.
    La en ce moment j'ai cette exception:

    Une exception non gérée du type 'System.Net.WebException' s'est produite dans Independentsoft.Webdav.dll

    Informations supplémentaires : Le serveur distant a retourné une erreur : (501) Non implémenté.

    Et voici le bout de code que j'ai trouvé juste pour tester que j’accède bien à mon serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    NetworkCredential credential = new NetworkCredential("user", "pwd");
               WebdavSession session = new WebdavSession(credential);
               Resource resource = new Resource(session);
               string[] list = resource.List("http://fr-d1296841:8080/Documents/");
               for (int i = 0; i < list.Length; i++)
               {
                   MessageBox.Show(list[i]);
               }
    Le code s'arrête au niveau de la 4 éme ligne
    Dans tous les cas j'arrive pas à voir si c'est un probleme de proxy, ou d'authentification ou autre...

    Voici le lien: http://independentsoft.de/webdav/tut...istfolder.html

    Pour l'instant je veux juste d'abord vérifier que j’accède bien à mon serveur avant de passer à l'étape suivante.

    Merci d'avance

  6. #6
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    Bon je ne sais pas comment à été developpé cette bibliothèque de classe,
    mais en Webdav tu n'as pas de session.

    Voici un lien pour toi apprendre a communiquer avec un serveur WebDAV :
    http://dung-tri.developpez.com/tutoriels/dotnet/webDav/

    Honnetement avec ce petit tuto et en partant from scratch tu comprendra mieu le protocole qu'utilise WebDAV.
    Si je peux me permettre de te donner un conseil laisse tomber la dll que tu utilise actuellement.
    Va voir le lien de mon précédent post pour configurer ton serveur WebDAV

    J'espère que sa pourra t'aider. le cas échéant je te donnerai un code complet pour le download d'une ressource sur un serveur WebDav.

Discussions similaires

  1. Ouvrir fichier d'un serveur distant
    Par yayvador dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 12/04/2013, 10h56
  2. Réponses: 2
    Dernier message: 24/08/2007, 20h16
  3. Réponses: 1
    Dernier message: 05/06/2007, 08h57
  4. Ouvrir un fichier situé côté serveur
    Par KibitO dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/08/2006, 16h01
  5. récupérer un fichier sur un serveur distant
    Par Phiss dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 18h02

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