Envoyer un gros fichier sur un serveur FTP via un winsock

[Résolu]
Signaler
Messages postés
2
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
23 février 2009
-
Messages postés
2
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
23 février 2009
-
bonjour a tous,
Je voudrai envoyer un gros fichier (environ 500 Mo) sur un serveur FTP UNIX.( donc je ne peux pas gerer les reponse, le coter serveur)
J'arrive a me connecter au serveur et a lui créer un fichier vide, qui attend normalement les donner en binaire.
Mais je n'arrive pas a lui envoyer les donner.
J'ai regarger partout (ou presque peut etre) sur le net mais je ne trouve pas la syntaxe  et/ ou le code
Si quelqu'un peut m'aider ce serai super sympa .

si cela peut vous aider a comprendre mon probleme voici le cote:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim stx As String, stZ As String, strbuffer As String * 16, lngCursor As Long    If Winsock1.State sckClosed Or Winsock1.State sckClosing Then Exit Sub
 Winsock1.GetData stx, vbString, bytesTotal
 stZ = Left(stx, 3)
 Select Case stZ
    Case "220":
        Winsock1.SendData "USER " & Text1.Text & vbCrLf
        TxtMessage = TxtMessage & stx
    Case "331":
        Winsock1.SendData "PASS " & Text2.Text & vbCrLf
        TxtMessage = TxtMessage & stx
    Case "230":
        TxtMessage = TxtMessage & stx
        lngCursor = 0
        Winsock1.SendData "TYPE I" & vbCrLf
    Case "200":
        TxtMessage = TxtMessage & stx
        Winsock1.SendData "PASV" & vbCrLf
      Case "227":
        TxtMessage = TxtMessage & stx
        Winsock1.SendData "STOR txt.txt" & vbCrLf
        strbuffer = Space$(255)
        Open "C:\txt.txt" For Binary As #1
     Case "150":
        TxtMessage = TxtMessage & stx           
    Case "226":
        TxtMessage = TxtMessage & stx           
    Case "200":
        TxtMessage = TxtMessage & stx
    Case "530":
        TxtMessage = TxtMessage & stx
     Case Else:
        TxtMessage = TxtMessage & stx
 End Select
 End Sub

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as également la possibilité de le faire via les APIs INET (FtpPutFile, etc.) :

http://msdn.microsoft.com/en-us/library/aa384170(VS.85).aspx

avec un exemple ici:
http://docvb.free.fr/apidetail.php?idapi=199
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as fouiné tout le net, mais tu sembles etre passé a coté des RFC correspondant au protocole FTP.

LIST, STOR et RETR (parmi les plus importants)
utilisent un deuxième canal Winsock.

tu gardes donc Winsock1 pour dialoguer

et selon si tu veux ouvrir en passif ou pas, tu te connecte avec un deuxième winsock au serveur, sur un port qu'il va te transmettre
soi tu ouvre un deuxième winsock, en écoute, et tu transmet le numéro de port au serveur.

les données transiteront par là, séparées du dialogue classique.
Messages postés
2
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
23 février 2009

Merci pour vos réponses