|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Erreur ftprécupère (filezilla--> android) |
Débuté par Fred, 09 juil. 2019 15:30 - 2 réponses |
| |
| | | |
|
| |
Posté le 09 juillet 2019 - 15:30 |
Bonjour,
J'ai développé plusieurs applications Android pour nos besoins professionnels. La gestion des mises à jour devient maintenant contraignante. Je me suis donc orienté vers un serveur FTP en mettant une petite procédure en place au démarrage de l'application. La voici :
SAI_Resultat = "" Date_FTP,Date_Local sont des Dates Heure_FTP,Heure_Local sont des Heures IDftp est un entier = FTPConnecte("192.168.10.24","android","android") SAI_Resultat = "ID FTP : " + IDftp Multitâche(100) SI IDftp <> -1 SI fFichierExiste("/storage/emulated/0/MAJ/Test.apk") = Faux ALORS SAI_Resultat = SAI_Resultat + RC + "Récup du fichier si absent local" Multitâche(100) Date_FTP = FTPDate(IDftp, "/Test.apk") Heure_FTP = FTPHeure(IDftp, "/Test.apk") SAI_Resultat = SAI_Resultat + RC + "FTP " + DateVersChaîne(Date_FTP,"JJ/MM/AAAA") + "-" + HeureVersChaîne(Heure_FTP,"HH:mm") Multitâche(100) SI FTPRécupère(IDftp, "/Test.apk", "/storage/emulated/0/MAJ/") = Vrai ALORS SAI_Resultat = SAI_Resultat + RC + "Fichier transféré" Multitâche(100) SINON SAI_Resultat = SAI_Resultat + RC + "Echec transfert" SAI_Resultat = SAI_Resultat + RC + ErreurInfo(errComplet) Multitâche(100) FTPDéconnecte(IDftp) RETOUR FIN SINON Date_FTP = FTPDate(IDftp, "/Test.apk") Heure_FTP = FTPHeure(IDftp, "/Test.apk") Date_Local = fDate("/storage/emulated/0/MAJ/Test.apk") Heure_Local = fHeure("/storage/emulated/0/MAJ/Test.apk") SI Date_FTP > Date_Local OU ( Date_FTP = Date_Local ET Heure_FTP > Heure_Local ) ALORS SAI_Resultat = SAI_Resultat + RC + "Proc màj" Multitâche(100) fSupprime("/storage/emulated/0/MAJ/Test.apk") FTPRécupère(IDftp, "/Test.apk", "/storage/emulated/0/MAJ/") ShellExecute("/storage/emulated/0/MAJ/Test.apk") SINON SAI_Resultat = SAI_Resultat + RC + "L'application est à jour." FIN FIN SINON SAI_Resultat = SAI_Resultat + RC + "Impossible de ce connecter au serveur FTP" FIN FTPDéconnecte(IDftp)
En test sur Windows, c'est parfait.
Mais sur l'Android mon résultat est toujours "Échec transfert" alors que du côté FTP (Filezilla), le retour est "transfer OK".
Le message d'erreur est : "Impossible de créer le fichier </storage/emulated/0/MAJ/> ou de l'ouvrir en écriture"
Peut-on écrire sur un Android ? Faut-il absolument rooter le phone pour modifier les droits sur le dossier de réception ?
C'est un code que j'ai déjà utilisé avec succès sur Android.
Comment mettre des Android à jour sans passer par le Google Store ?
Je vais faire avec du http...
Merci d'avance pour l'aide que vous pourrez m'apporter.
Cordialement,
Fred |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 311 messages Popularité : +93 (137 votes) |
|
Posté le 10 juillet 2019 - 00:16 |
| |
| |
| | | |
|
| | |
| |
Posté le 10 juillet 2019 - 12:18 |
Salut,
Voici le code qui fonctionne :
SAI_Resultat = ""
sRep est une chaîne = "/mnt/sdcard/Download/"
Date_FTP,Date_Local sont des Dates Heure_FTP,Heure_Local sont des Heures
SI fFichierExiste(sRep + "MAJ") = Faux ALORS SI fRepCrée(sRep + "MAJ") = Vrai ALORS SAI_Resultat = SAI_Resultat + RC + "Rep MAJ créé" SINON SAI_Resultat = SAI_Resultat + RC + "Rep MAJ non créé" FIN SINON SAI_Resultat = SAI_Resultat + RC + "Rep MAJ existe déjà" FIN
IDftp est un entier = FTPConnecte("192.168.10.24","android","android") SAI_Resultat = SAI_Resultat + RC + "ID FTP : " + IDftp
SI IDftp <> -1 SI fFichierExiste(sRep + "MAJ/Test.apk") = Faux ALORS SAI_Resultat = SAI_Resultat + RC + "Récup du fichier si absent local"
Date_FTP = FTPDate(IDftp, "/Test.apk") Heure_FTP = FTPHeure(IDftp, "/Test.apk") SAI_Resultat = SAI_Resultat + RC + "FTP " + DateVersChaîne(Date_FTP,"JJ/MM/AAAA") + "-" + HeureVersChaîne(Heure_FTP,"HH:mm") SI FTPRécupère(IDftp, "/Test.apk", sRep + "MAJ/") = Vrai ALORS SAI_Resultat = SAI_Resultat + RC + "Fichier transféré" SINON SAI_Resultat = SAI_Resultat + RC + "Echec transfert" SAI_Resultat = SAI_Resultat + RC + ErreurInfo(errComplet) FTPDéconnecte(IDftp) RETOUR FIN SINON Date_FTP = FTPDate(IDftp, "/Test.apk") Heure_FTP = FTPHeure(IDftp, "/Test.apk") Date_Local = fDate(sRep + "MAJ/Test.apk") Heure_Local = fHeure(sRep + "MAJ/Test.apk") SI Date_FTP > Date_Local OU ( Date_FTP = Date_Local ET Heure_FTP > Heure_Local ) ALORS SAI_Resultat = SAI_Resultat + RC + "Proc màj" fSupprime(sRep + "MAJ/Test.apk") FTPRécupère(IDftp, "/Test.apk", sRep + "MAJ/") ShellExecute(sRep + "MAJ/Test.apk") SINON SAI_Resultat = SAI_Resultat + RC + "L'application est à jour." FIN FIN SINON SAI_Resultat = SAI_Resultat + RC + "Impossible de ce connecter au serveur FTP" FIN FTPDéconnecte(IDftp)
J'ai également ajouté les permissions RW sur la sd comme conseillé.
Cela reste un peu pénible parce qu'il faut ajouter une sdcard dans les phone. Je vais tester avec le répertoire "download" du système.
Penser également à autoriser les sources inconnues.
Merci pour les conseils.
Fred |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|