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

Windows Forms Discussion :

Upload d'un fichier sur ftp!


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut Upload d'un fichier sur ftp!
    Bonjour à tous j'ai un problème d'upload de fichier sur ftp donc.

    Cela me paraissait simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    WebClient wc = new WebClient();
    wc.Credentials = new NetworkCredential(@"leNomUtilisateur", @"leMotDePasse");
    wc.UploadFile(@"ftp://MonAdresse/MonDossier/MonFichier1.jpg",WebRequestMethods.Ftp.UploadFile,@"C:\MonFichier.jpg"); 
    wc.Dispose();
    mais cela me renvoi une erreur de type :

    "Le serveur distant a retourné une erreur : (550) Fichier non disponible (par exemple, fichier introuvable, accès impossible)."
    et je ne vois pas d'où peut provenir le problème!

  2. #2
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    En effet avec ça tu ne risque pas d'arriver à grand chose !

    Pour uploader, tout d'abord il faut que tu te connecte au serveur ftp:

    Tu vas utiliser "FtpWebRequest" en incluant system.Net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create([TonAdresseFTP] + "/" + 
    Path.GetFileName([Chemin_de_ton_fichier]));
    Après il faut paramétrer Method et Credentials.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.Credentials = new NetworkCredential(username, password);
    request.UsePassive = true;
    request.UseBinary = true;
    request.KeepAlive = false;
    L'étape suivante consiste transférer le fichier uploadé dans un byte Array utilisé pour l'upload FTP comme transitoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FileStream stream = File.OpenRead([Chemin_de_ton_fichier]);
    byte[] buffer = new byte[stream.Length];
    
    stream.Read(buffer, 0, buffer.Length);
    stream.Close();
    Si le fichier est trop volumineux, il est mieux de le faire partie par partie, sinon plantage possible

    Maintenant pour l'upload en lui-même, il faut utiliser un Stream pour écrire dans le FTP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Stream reqStream = request.GetRequestStream();
    reqStream.Write(buffer, 0, buffer.Length);
    reqStream.Close();
    Et voilà! Je t'ai expliqué un tuto très utile en anglais que j'ai utilisé dernière fois que j'utilisais les FTP.

    Je te met en pièce jointe un exemple de code pour l'upload avec événements et tout, c'est clair, simple, et efficace!
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Merci Staten mais ton code génère exactement la même erreur que l'autre à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Stream reqStream = request.GetRequestStream();

  4. #4
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Pour ton erreur,je pense que c'est une erreur de droit d'écriture, tu n'as pas donné les droits. C'est dans les propriétés de ton FTP.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Citation Envoyé par Saten Voir le message
    Pour ton erreur,je pense que c'est une erreur de droit d'écriture, tu n'as pas donné les droits. C'est dans les propriétés de ton FTP.
    Bah pourtant ci!

    En tout avec FileZilla ça tourne!
    Alors ça devrait le faire ici aussi!

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2009
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    j'ai le même souci, erreur 550, et j'ai les droits d'écriture pourtant.

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonjour

    Quelqu'un à trouvé la solution ?
    J'ai le meme problème

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ok j'ai résolu mon problème

    Il ne fallait evidement pas confondre Path virtuel et path physique

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour à tous j'ai un problème
    je veux faire l'ajout et la suppression d'un fichier de fichier sur ftp donc.
    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
    public bool SupprimeFichier(Uri serverUri)
            {
     
                // serverUri doit commencer par "ftp://"
                if (serverUri.Scheme != Uri.UriSchemeFtp)
                {
                    return false;
                }
     
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
     
                // On défini le type de requête
                request.Method = WebRequestMethods.Ftp.DeleteFile;
     
                FtpWebResponse response = (FtpWebResponse) request.GetResponse();
                //On affiche l'état de suppression
                Console.WriteLine("Delete status: {0}",response.StatusDescription); 
     
                response.Close();
                return true;
            }

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour Saten,

    j'ai utilisé ta fonction et j'ai ce message d'erreur: "Impossible d'allouer de la mémoire"

    Merci

  11. #11
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    C'est pas tres explicite comme probleme !

    Ou exactement ?

    Je peux cependant asser facilement imaginer que c'est lors de l'intruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] buffer = new byte[stream.Length];
    As tu vérifié le Lenght de ton stream ?

Discussions similaires

  1. Upload de fichiers sur FTP
    Par Copernic09 dans le forum VBA Access
    Réponses: 14
    Dernier message: 26/08/2009, 21h15
  2. uploader un fichier sur ftp
    Par kohsaka dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/02/2008, 15h05
  3. [.NET2]Upload Fichier sur FTP (FtpWebRequest)
    Par nephhh dans le forum C#
    Réponses: 0
    Dernier message: 16/08/2007, 22h16
  4. [.NET 2.0] Probleme upload fichier sur ftp avec My
    Par Aspic dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/03/2007, 09h10
  5. [Upload] upload fichier sur ftp free
    Par Halukard dans le forum Langage
    Réponses: 61
    Dernier message: 12/02/2006, 20h50

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