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 :

Connexion à un FTPS


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut Connexion à un FTPS
    Bonsoir,
    je viens poster ce message en désespoir de cause car je commence tout doucement à m'embrouiller...
    Je dois récupérer un fichier xml se trouvant sur un ftp sécurisé (donc ftp avec ssl = ftps) et ensuite traiter ce fichier xml dans mon code-behind
    j'arrive à me connecter à ce ftps (en local pour le moment), à récupérer ce fichier en le lisant byte par byte mais je n'arrive pas à placer ce stream de byte dans mon Filestream..
    voici mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(myCertificateValidation);
     
    FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/nomdufichier.xml");
     
    req.EnableSsl = true;
     
    req.Credentials = new NetworkCredential("login", "pwd");
     
    req.Method = WebRequestMethods.Ftp.DownloadFile;
     
    req.Proxy = null;
     
    try
    {
    FtpWebResponse resp = (FtpWebResponse)req.GetResponse();
     
    FileStream fs;
     
    Stream s;
     
    s = resp.GetResponseStream();
     
    int ByteAsInteger;
    ByteAsInteger = s.ReadByte();
     
    while (ByteAsInteger >= 0)
    {
       ByteAsInteger = s.ReadByte();
       fs.WriteByte(ByteAsInteger);   ????
    }
     
    }
     
    catch (Exception error)
    {
        MessageBox.Show(error.Message);
    }
    je ne sais que mettre dans ma boucle car le ReadByte retourne un entier et le WriteByte attend un byte...

    quelqu'un aurait il une solution ?

    un grand merci d'avance

  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
    Il suffit de faire un cast (~ conversion) pour transformer ta valeur int en byte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    byte b;
    b = (byte) s.ReadByte();
    Soit dit en passant, ce n'est pas très efficace de lire et écrire octet par octet... il vaudrait mieux utiliser la méthode Read avec un buffer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    s = resp.GetResponseStream();
     
    byte[] buffer = new byte[4096]; // ou la taille de buffer que tu veux
    int nRead = 0;
    while ((nRead = s.Read(buffer, 0, 4096)) > 0)
    {
       fs.Write(buffer, 0, nRead);
    }
    (la fonction Read renvoie le nombre d'octets copiés dans buffer)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut
    merci beaucoup ca fonctionne nickel
    j'ai simplement du rajouter la déclarative pour mon filestream
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileStream fs = new FileStream("nomdufichier.xml", FileMode.Create);

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

Discussions similaires

  1. [VB6] Connexion à un FTP, problème login.
    Par predictus dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/06/2007, 18h29
  2. [FTP] connexion à un FTP sécurisé
    Par Zen_Fou dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2007, 10h28
  3. Problème de connexion à un ftp
    Par Manupong dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 05/07/2006, 10h57
  4. Connexion Serveur FTP
    Par black is beautiful dans le forum Développement
    Réponses: 4
    Dernier message: 02/05/2006, 11h29
  5. Connexion compte ftp
    Par tomfoot dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/02/2006, 14h37

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