Upload file ftp avec Inet via Free.fr
Herve_be
Messages postés
1182
Date d'inscription
Statut
Membre
Dernière intervention
-
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
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
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
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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. -
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 -
Bonjour,
J'ai un peu modifié la boucle pour qu'elle sorte après 10 foisTimeOut = 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