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 :

Télécharger, depuis le serveur, un fichier distant


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de gamerome
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 265
    Par défaut Télécharger, depuis le serveur, un fichier distant
    Bonjour,

    Je souhaite, depuis mon serveur IIS, récupérer un fichier qui se trouve sur un serveur distant.

    J'ai essayé plusieurs méthodes dont celle avec un objet WebRequest et WebResponse mais ça ne fonctionne pas. Je n'enregistre pas exactement mon fichier distant. Des octets sont rajoutés et le fichier est inexploitable.

    Ci-joint le code:
    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
     
    Dim fileToSee As String = Request.QueryString("fichier")
            Try
                Dim myURI As Uri = New Uri("http://serveur/" & fileToSee)
                Dim myWebRequest As WebRequest = WebRequest.Create(myURI)
                Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
     
                Dim myStream As Stream = myWebResponse.GetResponseStream()
                Dim myStreamReader As StreamReader = New StreamReader(myStream)
     
                Dim strHTML As String = myStreamReader.ReadToEnd
                myStreamReader.Close()
     
                Dim sw As StreamWriter = New StreamWriter(New FileStream(Server.MapPath("/") & fileToSee, FileMode.Create, FileAccess.Write))
                sw.Write(strHTML)
                sw.Close()
            Catch ex As Exception
                Trace.Write(ex.ToString())
            End Try
    J'ai essayé également la méthode FTP mais le résultat est pire (aucun octet récupéré!!!).

    Je cherche un peu partout mais en vain...

  2. #2
    Membre éclairé Avatar de gamerome
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 265
    Par défaut
    J'ai compris pourquoi ça ne marchait pas... Il y a un problème avec l'encodage. Je pense que c'est propre à la méthode utilisée.
    Alors laquelle utiliser pour récupérer des pdf ou des jpeg d'un serveur distant?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Dans ce genre de cas j'utilise généralement WebDav
    (Attention, il faut pouvoir l'activer sur IIS)
    Voici un exemple d'utilisation, c'est très proche de ce que tu as fais :

    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
     
     Public Function Exist(ByVal Url As String, ByVal sUserName As String, ByVal sPassword As String) As Boolean
     
                Dim toReturn As Boolean = True
     
                Try
                    Dim req As HttpWebRequest = DirectCast(WebRequest.Create(Url), HttpWebRequest)
                    req.Method = WebRequestMethods.Http.Get
     
                    ' s'authentifie 
                    If Not [String].IsNullOrEmpty(sUserName) Then
                        Dim networkCredential As New NetworkCredential(sUserName, sPassword)
                        req.Credentials = networkCredential
                    End If
     
                    Dim webResp As WebResponse = req.GetResponse()
                    Dim stream As Stream = webResp.GetResponseStream()
                    Dim sr As New StreamReader(stream)
                    Dim sResponse As String = sr.ReadToEnd()
     
                    webResp.Close()
                Catch ex As Exception
                    toReturn = False
                End Try
     
                Return toReturn
     
    End Function

  4. #4
    Membre éclairé Avatar de gamerome
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 265
    Par défaut
    J'ai réussi à m'en sortir en spécifiant l'encodage 1252.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Encoding.GetEncoding(1252)
    Les fichiers sont du coup bien récupérés.

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

Discussions similaires

  1. Serveur de fichiers distant
    Par maxouche dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 12/01/2015, 12h56
  2. Réponses: 4
    Dernier message: 18/08/2011, 17h00
  3. [Hudson] Fonctionnement avec un serveur de fichier distant
    Par bombjack44 dans le forum Intégration Continue
    Réponses: 0
    Dernier message: 27/07/2010, 17h18
  4. Parcourir un serveur de fichier distant?
    Par gui38 dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2006, 21h22
  5. [InputStream][http] télécharger depuis un serveur web
    Par FFF dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 08/11/2005, 11h32

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