Bonjour à tous.
Je rencontre, depuis un bon bout de temps déjà, pas mal de problèmes au développement via WinDev d’une application de transfert d’images via le protocole FTP.
En effet je souhaite transférer des images d’un poste A vers un poste B, tous deux étant dans le même réseau local (PAS SUR INTERNET). Pour cela, grâce à l’aide en ligne https://doc.pcsoft.fr/?3056010, j’ai créé deux applications :
– Une application Client FTP pour le poste A (poste qui envoi les images)
– Une application Serveur FTP pour le poste B (poste qui reçoit les images)
Pour vous mettre dans le contexte, voici ce que j’ai fait sur chacun des postes :
– Poste B = Serveur FTP
- Poste A = Client FTP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //------------------------------------------------------------------------------------------------ gnConnectFTP est un entier // Déclaration de la variable de démarage du serveur FTP // Création du fichier WDRPCSRV.INI contenant les droits de connexion de utilisateur AERH SI fFichierExiste(fRepExe() + "\WDRPCSRV.INI") = Faux ALORS INIEcrit("Passwords", "AERH", "123123000", fRepExe() + "\WDRPCSRV.INI") SINON fSupprime(fRepExe() + "\WDRPCSRV.INI") INIEcrit("Passwords", "AERH", "123123000", fRepExe() + "\WDRPCSRV.INI") FIN gnConnectFTP = NetDémarreServeur(ServeurFTP, Faux, 2001) // Démarage du serveur FTP //------------------------------------------------------------------------------------------------
En gros, rien de bien compliqué. Mais voilà, ce code fonctionne 1 fois sur 100, et de façon aléatoire, je reçois des messages d’erreur pas assez explicatifs.
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 //------------------------------------------------------------------------------------------------ sLaListeIci est une chaîne = fListeFichier(SysRep(srAppDataCommun) + "\PICS\*.*", frNonRécursif) // La liste des images sur le poste Client (Séparé par des RC) POUR TOUT CHAÎNE sUneImage DE sLaListeIci SEPAREE PAR RC // Pour chacune des photos trouvé dans le dossier spécifié plus haut sIP est chaîne = "192.168.1.120" // On récuper l'adresse IP SI Ping(sIP) = Vrai ALORS // Si la machine concerné répond au PING, c'est qu'elle est en ligne et connecté à notre réseau nNumCnxFTP est entier = NetConnecte(sIP, ServeurFTP, "AERH", "123123000", Faux, INTRANET, 2001) // On se connecte à son server FTP SI nNumCnxFTP = -1 OU nNumCnxFTP = 0 ALORS // Si la connexion au serveur FTP échoue, on affiche l'erreur Erreur(ErreurInfo(errComplet)) FIN SI nNumCnxFTP > 0 ALORS // Si parcontre la connexion au serveur FTP réusssi... SI NetEnvoieFichier(nNumCnxFTP, sUneImage, "/ProgramData/PICS/" + ExtraitChaîne(sUneImage, 1, "\", DepuisFin), "Envoie en cours.....", 100) = Faux ALORS Erreur(ErreurInfo(errComplet)) FIN FIN NetDéconnecte(nNumCnxFTP) // On se déconnecte de ce serveur pour cette image là. FIN FIN //------------------------------------------------------------------------------------------------
Dans mon dossier d'images, il n'y a pas de sous-dossiers, juste des images. J'ai bien ouverts tous les ports concernés dans mes pare-feux. Mais lorsque je lance le transfert, s'il y a plus de 2 images, le transfert échoue et me donne toutes les erreurs que j'ai posté en image plus bas.
Pourtant mon dossier contient plus de 600 images, et qui chacune pèse au maximum 700 Ko, donc pas lourde
Et lorsque j'utilise la famille de fonction FTPXxx() à la place de NetXxx(), j’obtiens une erreur me disant "Impossible de se connecter au serveur FTP"
J'ai fais des recherches intensives sur le net, sans pour autant trouver de solution. J'ai essayé de modifier le code, insérer des temporisation, etc, j'ai beau lire et relire l'aide, mais rien ne fonctionne.
Si quelqu’un a une solution pour moi, je suis très prenant, car à ce niveau, je suis désespéré.
Merci déjà pour vos réponses.
Partager