IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Problème de fichier corrompu lors de decodage en base 64 d'image [WD25]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2024
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Problème de fichier corrompu lors de decodage en base 64 d'image
    Bonjour,

    J'utilise Flask en Python pour créer une API qui génère un JSON contenant quatre images stockées sous forme de BLOB encodées en base64. Voici le code que j'utilise pour cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # Convertir les données binaires en base64
                form_data['signatureClient'] = base64.b64encode(form.signature_client).decode('utf-8') if form.signature_client else None
                form_data['signatureTech'] = base64.b64encode(form.signature_technicien).decode('utf-8') if form.signature_technicien else None
                form_data['photoAvant'] = base64.b64encode(form.photo_av_intervention).decode('utf-8') if form.photo_av_intervention else None
                form_data['photoApres'] = base64.b64encode(form.photo_apr_intervention).decode('utf-8') if form.photo_apr_intervention else None            
                form_fin_list.append(form_data)
    Cependant, lorsque je reçois ces images sur Windev, j'aimerais les décoder pour les enregistrer localement. Malheureusement, je rencontre des difficultés et je pense que je ne parviens pas à les décoder correctement, car je me retrouve avec des fichiers corrompus. Voici le code que j'utilise pour décoder les images sur Windev :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                            DonnéesBlobImage	= Décode(stSvaleur.signatureClient,encodeBASE64)
    			Nomfichier	= "Signature " + stSvaleur.nomSignatureClient + " Intervention n" +  stSvaleur.id_intervention + ".jpeg"
    			fSauveBuffer(sCheminImageLocaleSignatureClient + Nomfichier, DonnéesBlobImage) 
    			fic_formulaire_fin_intervention.formInter_chemin_signature_client	= Nomfichier
    Si vous avez des suggestions ou des idées. Merci d'avance

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 333
    Points : 3 844
    Points
    3 844
    Par défaut
    Bonjour,

    Je dirai que c'est lié à l'encodage UTF8/ANSI.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2024
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Bonjour,

    Je dirai que c'est lié à l'encodage UTF8/ANSI.
    Merci pour votre réponse. Alors, je dois me concentrer plus sur la manière dont j'encode les images en python ou sur la façon dont je les décode dans Windev pour résoudre mon problème ?

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 333
    Points : 3 844
    Points
    3 844
    Par défaut
    A mon avis, Python encode en UTF8 et Windev decode en ANSI donc voir pour utiliser un UTF8VersChaine(..).

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2024
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Lo² Voir le message
    A mon avis, Python encode en UTF8 et Windev decode en ANSI donc voir pour utiliser un UTF8VersChaine(..).
    Bonjour,

    Alors j'ai essayé de passer la chaîne que je reçois depuis l'api en Ansi avec UTF8VersAnsi() puis de la décoder, c'est un peu mieux puisque l'image pèse maintenant 21Ko au lieu de 1Ko mais je n'arrive toujours pas à complétement l'avoir, le décodage contient toujours des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sImageBase64SignatureClient	est une chaîne ANSI = UTF8VersAnsi(stSvaleur.photoApres,alphabetAnsi)
    DonnéesSignatureClient	est un Buffer	 = Décode(sImageBase64SignatureClient, encodeBASE64)
    Nomfichier				                 = "Signature " + stSvaleur.nomSignatureClient + " Intervention n" +  stSvaleur.id_intervention + ".jpeg"
    fSauveBuffer(sCheminImageLocaleSignatureClient + Nomfichier, DonnéesSignatureClient)
    J'ai aussi essayé avec d'autres méthodes (UnicodeVersAnsi(), UTF8VersChaîne(), ou passer d'autre format de décodage à Décode (encodeBase64SansRC, encodeBase64URL) mais toujours le même problème mes images ont des erreurs et ne peuvent donc pas être ouverte.
    Merci d'avance pour l'aide

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 205
    Points : 9 202
    Points
    9 202
    Par défaut
    Bonjour,

    Deux pistes de réflexion :
    - tu utilises de l'UTF8 mais, ça ne serait pas de l'UNICODE ?
    - Pour moi, les données issues de Décode() sont plutôt de type buffer, non ?

    Avancées sans réflexion approfondie et sans filet.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 374
    Points : 629
    Points
    629
    Billets dans le blog
    1
    Par défaut
    Je t'ai répondu sur le forum PCSOFT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier corrompu lors d'un téléchargement.
    Par rlelamer dans le forum Général Python
    Réponses: 19
    Dernier message: 27/12/2020, 20h46
  2. [Débutant] fichier corrompu lors de l upload ftp
    Par bobylastar49 dans le forum C#
    Réponses: 3
    Dernier message: 15/01/2013, 10h33
  3. fichier corrompu lors de l'install de visual studio2010
    Par guaguanco dans le forum Visual Studio
    Réponses: 5
    Dernier message: 28/07/2010, 09h36
  4. [VWD 2005][Upload]Fichier corrompu lors de l'Upload
    Par DonkeyMaster dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/01/2007, 22h24
  5. fichier corrompu ! comment réparer ?
    Par Jean Bonnisme dans le forum Access
    Réponses: 10
    Dernier message: 11/10/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo