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

VB.NET Discussion :

Transfert par FTP


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut Transfert par FTP
    Bonjour,

    Je galère sur le transfert de fichiers vers un serveur FTP (qui ne m'appartient pas).

    Voici 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        Function UploadToFTP(ByVal URL As String, ByVal UserName As String, ByVal Password As String, ByVal Fichier As String)
            Try
                'Reading file into a byte array
                Dim file As Byte()
                file = System.IO.File.ReadAllBytes(Fichier)
                Dim FileNameOnServer As String
                Dim info As New IO.FileInfo(Fichier)
                FileNameOnServer = info.Name
                'Request
                Dim req As System.Net.FtpWebRequest
                req = DirectCast(System.Net.WebRequest.Create(URL & "/" & FileNameOnServer), System.Net.FtpWebRequest)
                'Credentials
                Dim credentials As New System.Net.NetworkCredential(UserName, Password)
                req.Credentials = credentials
                'Request Method
                req.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                'uploading file onto FTP server
                Dim stream As System.IO.Stream
                stream = req.GetRequestStream()
                stream.Write(file, 0, file.Length)
                stream.Close()
                Return True
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
                writetolog("Erreur de fonction UploadToFTP " & vbCrLf & ex.ToString)
                Return False
            End Try
        End Function
    J'ai beau essayer tout ce que je peux avec l'URL du serveur :
    -sftp://
    -rien du tout
    -http://
    -https://
    -url en "français"
    -url en IP

    Je me ramasse toujours les mêmes erreurs :
    Invalid URI: The format of the URI could not be determined.
    ou
    The URI prefix is not recognized.

    Je cherche sur le net mais je ne trouve pas grand chose... et je tourne en rond...
    C'est la 1ere fois que je tente du webrequest donc si quelqu'un peut m'envoyer un lien vers un bon tuto, je suis preneur.
    Je continue de chercher de mon côté en attendant

    Merci !

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    J'ai pas de solution, mais je me demande seulement si le début de l'URL n'est ps simplement ftp:// ...


  3. #3
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Déjà essayé
    J'ai demandé un coup de main au type qui gère ce serveur pour savoir l'adresse exacte au cas-où mais je sèche complètement !

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Déjà le premier truc, c'est de vérifier que le serveur FTP est bien accessible.
    Vous pouvez le faire avec la commande "ftp" de Windows, ou de façon plus simple et plus fiable, avec un client tel que FileZilla. En effet, la commande Windows ne supporte pas le mode passif (qui est généralement activé).

    Ensuite, je ne suis pas certain que WebRequest sâche gérer le protocole FTP... d'autant qu'li y a une classe FtpWebRequest dédiée... https://docs.microsoft.com/fr-fr/dot...tframework-4.8

  5. #5
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Bonjour,


    Citation Envoyé par StringBuilder Voir le message
    Déjà le premier truc, c'est de vérifier que le serveur FTP est bien accessible.
    Vous pouvez le faire avec la commande "ftp" de Windows, ou de façon plus simple et plus fiable, avec un client tel que FileZilla. En effet, la commande Windows ne supporte pas le mode passif (qui est généralement activé).
    C'est bien le cas, avec FileZilla je sais aller dessus sans problème.

    Citation Envoyé par StringBuilder Voir le message
    Ensuite, je ne suis pas certain que WebRequest sâche gérer le protocole FTP... d'autant qu'li y a une classe FtpWebRequest dédiée... https://docs.microsoft.com/fr-fr/dot...tframework-4.8
    J'ai trouvé ça un peu strange aussi, mais le code vient d'un exemple trouvé sur le net et je trouve ce code (à quelques variantes près) dans de nombreux tutos.
    J'ai de toute façon testé en mettant des FtpWebRequest partout et le résultat est le même...

    J'ai juste une version de l'adresse qui renvoie une erreur différente : "The underlying connection was closed: The server committed a protocol violation."

    J'ai aussi souvent vu l'histoire du serveur en mode passif, mais comme ce n'est pas mon serveur j'ai demandé à son administrateur, j'attends sa réponse.

  6. #6
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    D'après mes dernières recherches, la classe webrequest peut gérer le FTP mais pas le SFTP...
    Youpie !

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

Discussions similaires

  1. Réponses: 32
    Dernier message: 21/06/2012, 15h48
  2. Echec de transfert par FTP mais pas de retour d'erreur
    Par kernigansnotdead dans le forum Composants VCL
    Réponses: 2
    Dernier message: 08/02/2008, 20h12
  3. Transfert de fichier par FTP
    Par 12_darte_12 dans le forum Access
    Réponses: 1
    Dernier message: 05/09/2006, 09h26
  4. Transfert fichier par FTP
    Par j_bolduc dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 19h59
  5. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 17h53

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