|
Sélectionner une image ou fichier pdf |
Débuté par Stéphane, 29 mar. 2024 16:59 - 3 réponses |
| |
| | | |
|
| |
Posté le 29 mars 2024 - 16:59 |
Bonjour,
Je cherche à sélectionner une image ou un fichier pdf depuis le smartphone avec androïd avec le code ci-dessous. le but étant de l'envoyer par Webservices. En test simulation avec WDM 2024, celà fonctionne, mais pas en réel avec un téléphone. Malheureusement les variables : NomFichier_1 n'affiche pas le nom du fichier sélectionné avec son extension FichierEncoder_1, je suppose qu'il ne trouve pas pour encoder en base64. Pouvez-vous me dire ce qui ne va pas dans le code ou me donner un conseil.
Merci infiniment.
<Compile SI Configuration = "Application Android">
SI OuiNon(1, "Voulez-vous joindre un document ?") = Non ALORS NomFichier_1 = "" FichierVersEcran() SINON FichierSelectionner_1 est un URI = URISélecteur(uriImage + TAB + "application/pdf") SI PAS ErreurDétectée ALORS SI FichierSelectionner_1 <> "" ALORS NomFichier_1 = fExtraitChemin(FichierSelectionner_1, fFichier + fExtension) FichierEncoder_1 = Encode(fChargeBuffer(fExtraitChemin(FichierSelectionner_1, fFichier + fExtension)), encodeBASE64) SINON NomFichier_1 = "" FIN FichierVersEcran() FIN FIN <FIN> |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 347 messages Popularité : +93 (137 votes) |
|
Posté le 29 mars 2024 - 22:16 |
Salut Avec uriselecteur c'est la fonction URIRécupèreInfo qu'il faut utiliser Sinon j'avais fait un exemple de sélecteur de fichiers sous Android Avant les fonctions uri https://depot.pcsoft.fr/resource.awp… |
| |
| |
| | | |
|
| | |
| |
Posté le 01 avril 2024 - 07:09 |
Bonjour Popoy, Merci pour votre contribution. A ma connaissance, la fonction URIRécupèreInfo ne permet pas de récupérer le chemin complet et exacte de l'image sur le téléphone, ainsi que son extension. Voici la trace de URISélecteur : content://com.android.providers.media.documents/document/image%3A0000011309 Alors que mon image se trouve dans /Stockage interne/DCIM/Camera/20240101_132816.jpg Merci |
| |
| |
| | | |
|
| | |
| |
Posté le 04 avril 2024 - 08:39 |
Bonjour à tous, Après avoir fait des recherches, il semblerait que la sécurité a été augmentée depuis android 11, qui ne permet plus d'avoir le chemin complet du fichier non propriétaire. L'astuce est donc de copier le fichier sélectionné dans l'appli et/ou de le supprimer après (sauf si on veut le conserver). Après il ne reste plus qu'à le faire transiter par le webservice en Json pour le récupérer du côté WD. Je public le code pour faire profiter à d'autre.
<Compile SI Configuration = "Application Android">
SI OuiNon(1, "Voulez-vous joindre un document ?") = Non ALORS NomFichier_1 = "" SINON FichierSelectionner_1 est un URI = URISélecteur(uriImage + TAB + "application/pdf") SI PAS ErreurDétectée ALORS SI FichierSelectionner_1 <> "" ALORS SELON Droite(URIRécupèreInfo(FichierSelectionner_1, uriInfoTypeConversion),3) CAS = "jpg", "JPG", "png", "PNG" URIVersFichier(FichierSelectionner_1, SysRepStockageExterne(1, sseAppPhoto), ProcFinEnregistre_img) PROCEDURE INTERNE ProcFinEnregistre_img(bResultat, sCheminRessource) SI bResultat ALORS NomFichier_1 = fExtraitChemin(sCheminRessource, fFichier + fExtension) FichierEncoder_1 = Encode(fChargeBuffer(fExtraitChemin(sCheminRessource, fRépertoire + fFichier + fExtension)), encodeBASE64) fSupprime(fExtraitChemin(sCheminRessource, fRépertoire + fFichier + fExtension)) FIN FIN CAS = "pdf", "PDF" URIVersFichier(FichierSelectionner_1, SysRepStockageExterne(1, sseAppDocument), ProcFinEnregistre_doc) PROCEDURE INTERNE ProcFinEnregistre_doc(bResultat, sCheminRessource) SI bResultat ALORS NomFichier_1 = fExtraitChemin(sCheminRessource, fFichier + fExtension) FichierEncoder_1 = Encode(fChargeBuffer(fExtraitChemin(sCheminRessource, fRépertoire + fFichier + fExtension)), encodeBASE64) fSupprime(fExtraitChemin(sCheminRessource, fRépertoire + fFichier + fExtension)) FIN FIN AUTRE CAS FIN SINON NomFichier_1 = "" FIN FIN FIN <FIN> |
| |
| |
| | | |
|
| | | | |
| | |
|