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 :

[FTP] Probleme lors de l'upload : Mauvais format d'envoi


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut [FTP] Probleme lors de l'upload : Mauvais format d'envoi
    Bjr,

    j'ai un probleme lors de l'upload d'un fichier:
    l'upload marche bien mais je dois mal l'envoyer car le traitement après ce vautre (je n'ai pas la main sur le process)

    voila le code tiré de la msdn que j utilise:
    http://msdn.microsoft.com/en-us/library/ms229715.aspx
    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
    using System;
    using System.IO;
    using System.Net;
    using System.Text;
     
    namespace Examples.System.Net
    {
        public class WebRequestGetExample
        {
            public static void Main ()
            {
                // Get the object used to communicate with the server.
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
                request.Method = WebRequestMethods.Ftp.UploadFile;
     
                // This example assumes the FTP site uses anonymous logon.
                request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
     
                // Copy the contents of the file to the request stream.
                StreamReader sourceStream = new StreamReader("testfile.txt");
                byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                sourceStream.Close();
                request.ContentLength = fileContents.Length;
     
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(fileContents, 0, fileContents.Length);
                requestStream.Close();
     
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
     
                Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
     
                response.Close();
                }
            }
        }
    }

    response.StatusDescription me repond :
    226 File retreived successfully (network bytes 1345/file bytes 1345)
    ----> après le process en face se vautre

    alors que quand j'utilise filezilla client pour copier le fichier
    Réponse : 226 File retreived successfully (network bytes 1345/file bytes 1300)
    1300 au lieu de 1345 !!!

    j'ai essayé Encoding.UTF8.GetBytes(, ascii, unicode.... ( en theorie la transaction s'effectu en UTF8 d'après les log de filezilla..."OPT UTF8")


    je ne comprend pas comment envoyer ce fichier...

  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
    je parie que ton fichier fait 45 lignes
    tu as dû transférer le fichier en binaire alors que FileZilla l'a transféré en ASCII, et a donc converti les sauts de ligne Windows (\r\n)en sauts de ligne UNIX (\n)
    Soit un caractère de moins par ligne

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    tomlev

    hum... je ne peux pas tester car je ne suis plus au taf la...


    je te remerci de m'avoir lu et aider!! j'y ai reflechis dans le train et je pense aussi que ca doit venir de ca

    le truc zarb c est j'ai essayer avec un Encoding.ASCII.GetBytes... et aussi j ai essayé en local les 2 fct (celle du dessu tiré de la msdn marche pas, alors qu une autre tiré d une lib plus bas niveau trouvé sur le net marche) et toute crées un fichier de 1345 char...

    enfin bon de mémoire la lib bas niveau encode en ascii...

    enfin bon je pense que c est les \r\n en effet...

    merci !

    je post demain resolu si c est le cas

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                StreamReader sourceStream = new StreamReader("testfile.txt", Encoding.ASCII);
                byte [] fileContents = Encoding.ASCII.GetBytes(sourceStream.ReadToEnd());

    ca devrait suffir comme modif au niveau du code je pense...

  5. #5
    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
    Ce n'est pas une question d'encodage mais de mode de transfert FTP :
    - Binaire : on transmet les données brutes sans aucune conversion
    - ASCII : les sauts de lignes sont convertis pour correspondre aux normes du système de destination. Il n'y a pas de lien entre l'encodage des caractères et le format des sauts de lignes.
    Avec FtpWebRequest, tu peux choisir le mode de transfert en mettant UseBinary à true (mode binaire) ou false (mode ASCII)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    en effet ca marche !

    merci tomlev, pb résolu

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

Discussions similaires

  1. [Upload] Probleme de renommage lors d'un upload
    Par Aenima dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2008, 15h34
  2. [Upload] Probleme de syntaxe lors d'un upload
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 01/04/2008, 21h32
  3. Réponses: 4
    Dernier message: 15/03/2007, 07h02
  4. [installation] problème lors du format visiblement
    Par Fabouney dans le forum Windows XP
    Réponses: 2
    Dernier message: 22/11/2006, 10h52
  5. [XML][FTP] caractère bizarre (ù à a place de é) lors d'un upload.
    Par d_token dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 27/09/2006, 12h18

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