Envoyer un gros fichier sur un serveur FTP via un winsock

Résolu
cs_amel80 Messages postés 2 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 23 février 2009 - 17 févr. 2009 à 18:20
cs_amel80 Messages postés 2 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 23 février 2009 - 23 févr. 2009 à 14:50
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
18 févr. 2009 à 06:48
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
18 févr. 2009 à 06:38
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.
0
cs_amel80 Messages postés 2 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 23 février 2009
23 févr. 2009 à 14:50
Merci pour vos réponses
0