PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2025 → Transfert d'image depuis mobile sur un FTP
Transfert d'image depuis mobile sur un FTP
Iniciado por rom, 28,nov. 2023 13:58 - 4 respuestas
Miembro registrado
49 mensajes
Publicado el 28,noviembre 2023 - 13:58
Bonjour :) ; je viens vers suite à un problème.
Je suis en train de faire des tests de transfert d'image via la fonction FTP depuis un mobile.

J'ai donc pour mes tests créé un FTP depuis Windows avec IIS pour me connecter en anonyme.
Je commence en faisant mets teste depuis l’émulateur Windev mobile et avec le code ci-joint cela fonctionne sans problème :
MaConnexion est un entier
MaConnexion = FTPConnecte("192.168.1.14","","",21,ftpModePassif)
SI MaConnexion = -1 ALORS
Erreur(ErreurInfo(errComplet))
SINON
monRépertoire est une chaîne
monRépertoire = "/FTPImageMobile/"
SI PAS FTPRepCrée(MaConnexion,monRépertoire) ALORS
MonDossier est un entier
MonDossier =FTPRepCrée(MaConnexion,monRépertoire)
SI MonDossier= -1 ALORS
Erreur(ErreurInfo(errComplet))
SINON
FIN
FIN
MonEnvoie est un entier
MonEnvoie = FTPEnvoie(MaConnexion, Img_Upload , monRépertoire)
SI MonEnvoie = -1 ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info("Fichier envoyé")
FIN
FIN
FTPDéconnecte(MaConnexion)


Problème depuis mon mobile le message "Fichier envoyé" est bien reçu, mais rien n'est créé (pas même le dossier) sur le serveur.

Me disant que cela viens peut-être d'un problème de configuration divers je test sur le FTP de mon site internet (en rajoutant simplement les identifiants/MDP du compte utilisateur dans le FTPConnecte().
Sur l’émulateur Windev mobile cela fonction de nouveau correctement. Sur l’application mobile le résultat est le même ("Fichier envoyé" et rien de créé).

Avez-vous vous une solution ou des pistes de raisonnements ?
En vous remerciant par avance :merci:!
Miembro registrado
1.166 mensajes
Publicado el 29,noviembre 2023 - 07:48
Le besoin final est-il de transférer des photos sur un serveur ftp sur le web ou bien de transférer des photos sur ton ordinateur ?
Pour les transferts FTP sur le web, voici ce que je fais après avoir valorisé gsFtpHost, gsFtpUser_photos, gsFtpPswd, gnFtpPort,

nFirstPhoto=1

TANTQUE HTrouve(PHOTOS)
SI nFirstPhoto=1 ALORS

nFirstPhoto=0
xnum = FTPConnecte(gsFtpHost, gsFtpUser_photos, gsFtpPswd, gnFtpPort, Vrai)
SI xnum =-1 ALORS
Info(ErreurInfo(errMessage))
nFirstPhoto=-1
FIN
FIN

SI xnum <> -1 ALORS
vMyPhotoJSON=Null
vMyPhotoJSON.ID_CITATION=nLastIdCitationWNat
vMyPhotoJSON.DATE_PHOTO=Milieu(PHOTOS.DATE_PRISE_De_VUE,1,4)+"_"+
Milieu(PHOTOS.DATE_PRISE_De_VUE,5,2)+"_"+
Milieu(PHOTOS.DATE_PRISE_De_VUE,7,2)+"_"+
Milieu(PHOTOS.DATE_PRISE_De_VUE,9,2)+"-"+
Milieu(PHOTOS.DATE_PRISE_De_VUE,11,2)+"-"+
Milieu(PHOTOS.DATE_PRISE_De_VUE,13,2)
vMyPhotoJSON.FILENAME_EXTENSION="wnat_"+nLastIdCitationWNat+"_"+vMyPhotoJSON.DATE_PHOTO+fExtraitChemin(gsRepPhoto+[fSep()]+PHOTOS.FILENAME,fExtension)
vMyPhotoJSON.FILENAME="wnat_"+nLastIdCitationWNat+"_"+vMyPhotoJSON.DATE_PHOTO
vMyPhotoJSON.EXTENSION=fExtraitChemin(gsRepPhoto+[fSep()]+PHOTOS.FILENAME,fExtension)

SI FTPEnvoie(xnum, gsRepPhoto+[fSep()]+PHOTOS.FILENAME, vMyPhotoJSON.FILENAME+vMyPhotoJSON.EXTENSION,"REFRESH_SFTP")=Faux ALORS
Info("PROBLEME DE TELEVERSEMENT","Echec du transfert de la photo "+gsRepPhoto+[fSep()]+PHOTOS.FILENAME,"Relancer l'opération en connexion WIFI devrait résoudre le problème")
FIN

FIN
HLitSuivant(PHOTOS, IDCITATIONS)
FIN

SI nFirstPhoto=0 ALORS
FTPDéconnecte(xnum)
FIN


D'autre part, je n'ai jamais essayé de transférer des fichiers sur le wampserver de mon pc windows 11.

Avant de faire un transfert, peux-tu exécuter un webservice rest sur ton serveur local ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Miembro registrado
49 mensajes
Publicado el 29,noviembre 2023 - 13:44
Bonjour :), merci pour votre retour.
Bon parfois il ne faut pas beaucoup chercher (ou essayer de comprendre) et grâce a votre message cela fonctionne.
Je copie mon code actuel si cela peut aider.

xnum est un entier
xnum = FTPConnecte(gsAdresseFTP,gsIdentifiantFTP,gsMDPFTP,gsPortFTP, Vrai)
SI xnum =-1 ALORS
Info(ErreurInfo(errMessage))
FIN
SI xnum <> -1 ALORS
monRépertoire est une chaîne
monRépertoire = gsDossierFTP+"ImageMobile/"
SI PAS FTPRepCrée(xnum,monRépertoire) ALORS
MonDossier est un entier
MonDossier =FTPRepCrée(xnum,monRépertoire)
SI MonDossier = -1 ALORS
Erreur(ErreurInfo(errComplet))
FIN
FIN
SI FTPEnvoie(xnum, Img_Upload1 , monRépertoire)=Faux ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info("Image envoyée")
FIN
FIN
FTPDéconnecte(xnum)


Je n'ai pas testé sur mon ftp interne juste sur celui de mon site.
Mais oui mon application communique déjà en webservice.

En vous remerciant encore :merci:.
Miembro registrado
1.166 mensajes
Publicado el 30,noviembre 2023 - 07:48
Dans mon cas, je ne signifie pas le dossier cible mais seulement le nom du fichier cible car le user FTP utilisé est contraint par défaut à l'utilisation d'un seul dossier cible.

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Miembro registrado
406 mensajes
Publicado el 30,noviembre 2023 - 08:34
rom a écrit :
Bonjour , merci pour votre retour.
Bon parfois il ne faut pas beaucoup chercher (ou essayer de comprendre) et grâce a votre message cela fonctionne.
Je copie mon code actuel si cela peut aider.

xnum est un entier
xnum = FTPConnecte(gsAdresseFTP,gsIdentifiantFTP,gsMDPFTP,gsPortFTP, Vrai)
SI xnum =-1 ALORS
Info(ErreurInfo(errMessage))
FIN
SI xnum <> -1 ALORS
monRépertoire est une chaîne
monRépertoire = gsDossierFTP+"ImageMobile/"
SI PAS FTPRepCrée(xnum,monRépertoire) ALORS
MonDossier est un entier
MonDossier =FTPRepCrée(xnum,monRépertoire)
SI MonDossier = -1 ALORS
Erreur(ErreurInfo(errComplet))
FIN
FIN
SI FTPEnvoie(xnum, Img_Upload1 , monRépertoire)=Faux ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info("Image envoyée")
FIN
FIN
FTPDéconnecte(xnum)


Je n'ai pas testé sur mon ftp interne juste sur celui de mon site.
Mais oui mon application communique déjà en webservice.

En vous remerciant encore .

Bonjour,
Je ne comprends pas le 2ème FTPRepCrée en cascade en cas d'échec. Cette fonction ne renvoie pas un entier ...