Upload file ftp avec Inet via Free.fr

Fermé
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 29 avril 2020 à 15:52
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 30 avril 2020 à 11:54
Bonjour,
Mon programme VB6 envoie des fichiers en ftp sur mon serveur avec le code ci-dessous.
Tout fonctionne parfaitement sauf avec quelques clients Free : ça boucle.
Comme ce n'est pas chez moi je ne peux pas travailler en pas à pas pour savoir où.
Pourriez-vous me dire où ce programme pourrait blucler et ce que je pourrais faire pour en sortir ?
Grand merci d'avance

' Source = fichier à envoyer; Destination = URL destinataire
On Error GoTo InetError
Inet.AccessType = icUseDefault
Inet.Protocol = icFTP
Inet.URL = "ftp://ftp.rudyv.be"
Inet.UserName = "MyUserName"
Inet.Password = "MyPassword"

Inet.Execute , "PUT " & Chr(34) & Source & Chr(34) & " " & Chr(34) & "/" & Destination & Chr(34)
While Inet.StillExecuting
    DoEvents
    Sleep 1000 '1sec
    DoEvents
Wend

Inet.Execute , "CLOSE"
While Inet.StillExecuting
    DoEvents
    Sleep 1000 '1sec
    DoEvents
Wend
Exit Sub

InetError:
If Err.Number = 35764 Then    ' still executing last request
    Inet.Cancel
    Resume Next
ElseIf Err.Number = 35761 Then
    Destination = "35761 : Request Timed out"
    Inet.Cancel
    Resume Next
End If

MsgTxt = "Erreur Inet " & Err.Number & " (" & Err.Description & ")" & Chr$(10) & "ligne " & Erl
   On Error GoTo 0
End Sub
A voir également:

3 réponses

yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
29 avril 2020 à 17:09
bonjour, je vois deux possibilités évidentes de "bouclage": l'attente après le PUT et l'attente après le CLOSE.
tu pourrais probablement afficher quelque part ce que le programme est en train d'attendre, cela t'aiderait à déterminer s'il s'agit bien de cela.
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
29 avril 2020 à 18:07
Merci,
J'ai oublié de dire qu'une sub est appelée chaque fois que le status change

Private Sub Inet_StateChanged(ByVal State As Integer)
Select Case State
    Case icNone: InetState(0).Text = InetState(0).Text & vbCrLf & "Connect Failed.... Error"
    Case icResponseReceived: InetState(0).Text = InetState(0).Text & vbCrLf & "Response Received"
    Case ichostresolvinghost: InetState(0).Text = InetState(0).Text & vbCrLf & "Looking for IP Address"
    Case icHostResolved: InetState(0).Text = InetState(0).Text & vbCrLf & "Found IP Address"
    Case icConnecting: InetState(0).Text = InetState(0).Text & vbCrLf & "Connecting"
    Case icConnected: InetState(0).Text = InetState(0).Text & vbCrLf & "Connected"
    Case icRequesting: InetState(0).Text = InetState(0).Text & vbCrLf & "Sending a Request"
    Case icRequestSent: InetState(0).Text = InetState(0).Text & vbCrLf & "Request Send"
    Case icReceivingResponse: InetState(0).Text = InetState(0).Text & vbCrLf & "Receiving Response"
    Case icResponseReceived: InetState(0).Text = InetState(0).Text & vbCrLf & "Response Received"
    Case icDisconnecting: InetState(0).Text = InetState(0).Text & vbCrLf & "Disconnecting"
    Case icDisconnected: InetState(0).Text = InetState(0).Text & vbCrLf & "Disconnected"
    Case icResponseCompleted: InetState(0).Text = InetState(0).Text & vbCrLf & "Response Completed"
    Case icError
      Destination = "Impossible de transférer le fichier : " & Inet.ResponseCode & " : " & Inet.ResponseInfo
End Select
End Sub
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
30 avril 2020 à 11:54
Bonjour,
J'ai un peu modifié la boucle pour qu'elle sorte après 10 fois
TimeOut = 0   ' Edit 200430 : ajout d'un time out pour éviter de boucler
While Inet.StillExecuting And TimeOut < 10
DoEvents
Sleep 1000 '1sec
DoEvents
TimeOut = TimeOut + 1
Wend
0