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 :

[2.0] Pb Upload FTP


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut [2.0] Pb Upload FTP
    Bonjour,

    j'ai fait un petit batch qui se connecte à un serveur FTP et qui lui transmet des fichiers.
    Tout marche parfaitement bien sauf que si un de mes fichiers contient un accent, le fichier sur le serveur FTP n'est pas correct.
    Je pense à un problème d'encoding mais je ne vois pas où ????

    voici ma fonction d'upload, si vous voyez le problème
    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
     
                    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(URI);
                    ftp.Credentials = new NetworkCredential(_username, _password);
                    ftp.Method = WebRequestMethods.Ftp.UploadFile;
                    ftp.UseBinary = true;
                    ftp.KeepAlive = false;
     
                    StreamReader sourceStream = new StreamReader(fichier);
    // J'ai aussi essayé ça mais pas mieux.
                    //StreamReader sourceStream = new StreamReader(fichier, Encoding.UTF8);
                    byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                    sourceStream.Close();
                    ftp.ContentLength = fileContents.Length;
     
                    Stream requestStream = ftp.GetRequestStream();
                    requestStream.Write(fileContents, 0, fileContents.Length);
                    requestStream.Close();
                    FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
                    response.Close();
    Merci par avance.
    Mosco

  2. #2
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    personne n'a d'idée ?

  3. #3
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    Le problème venait de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    StreamReader sourceStream = new StreamReader(fichier);
    pour que cela fonctionne il fallait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    StreamReader sourceStream = new StreamReader(fichier,Encoding.Default);
    Mosco

  4. #4
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    Si cela intéresse, voici mon code au complet, j'avais encore oublié un petit bug


    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
     
                    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(URI);
                    ftp.Credentials = new NetworkCredential(_username, _password);
                    ftp.Method = WebRequestMethods.Ftp.UploadFile;
                    ftp.UseBinary = true;
                    ftp.KeepAlive = false;
     
                    StreamReader sourceStream = new StreamReader(fichier,Encoding.Default);
                    byte[] fileContents = Encoding.Default.GetBytes(sourceStream.ReadToEnd());
                    sourceStream.Close();
                    ftp.ContentLength = fileContents.Length;
     
                    Stream requestStream = ftp.GetRequestStream();
                    requestStream.Write(fileContents, 0, fileContents.Length);
                    requestStream.Close();
                    FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
                    response.Close();
    Mosco

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

Discussions similaires

  1. [VBS] Upload FTP
    Par kevain_09 dans le forum VBScript
    Réponses: 6
    Dernier message: 23/12/2006, 13h45
  2. Script Shell pour un Upload FTP
    Par oumokhtar dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 05/12/2006, 12h52
  3. [VB.NET][1.1] Upload FTP
    Par dinbougre dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/10/2006, 08h55
  4. [Upload] Upload ftp free
    Par joquetino dans le forum Langage
    Réponses: 9
    Dernier message: 09/10/2005, 02h28
  5. [Image]Vérifier taille image lors d'upload FTP
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/09/2004, 01h10

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