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

PHP & Base de données Discussion :

BLOB d'ACCESS vers PHP/MySQL


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut BLOB d'ACCESS vers PHP/MySQL
    Bonjour à tous,

    je rencontre une petite difficulté et j'aimerai avoir un peu d'aide de votre part.

    Voici l'historique :
    - j'ai dû transférer les informations d'une ancienne base ACCESS dans une base MySQL afin de pouvoir l'exploiter dans une nouvelle interface WEB.
    --> Dans la base de donnée ACCESS, dans l'une des table, j'ai une donnée BLOB que je récupère dans un BLOB également sous MySQL.

    Comment faire pour la lire dans mon interface web PHP sachant que je ne connait rien du BLOB d'origine, ni taille, ni type ....
    Je n'ai jamais travaillé avec des données BLOB donc je suis un peu perdu ...

    Merci d'avance

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Le BLOB, c'est du binaire. C'est l'interface au dessus qui l'interprète. Il faut que tu regardes dans l'ancienne base à quoi ça correspond. Peut-être des images ou des fichiers stockés dans le champ BLOB.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Voilà tout ce que je sais de ma base access

    Nom : Capture bdd access.PNG
Affichages : 196
Taille : 97,8 Ko

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    La colonne BLOB s'appelant "image", on peut supposer que c'est une image qui a été stockée directement dans la base. Par contre, on ne sait pas le format de l'image (JPG, PNG...), il va donc falloir tâtonner...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Bien vue Celira,

    Pourtant j'ai mes lunettes

    Il devrait être facile de connaitre le type d'image avec son magic.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    merci pour les réponses fournies et désolé de réagir aussi tardivement mais j'ai été appelé sur d'autres projets.
    Je reviens donc sur celui-ci.

    Après mettre renseigné auprès d'une personne ayant utilisé quelques fois le logiciel tournant sur cette base, la donnée blob stockerai un document powerpoint.

    Vous serait-il possible de m'orienter sur la méthode a utiliser pour ouvrir ce document ou en télécharger le contenu, les informations qui y sont stockées sont visiblement importantes ?

    Merci d'avance

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si c'est un powerpoint, tout ce que tu peux faire, c'est proposer le fichier en téléchargement via un lien qui pointe vers un script d'affichage du fichier :
    Comment forcer le téléchargement d'un fichier ?
    Lire / télécharger contenu PDF d'un champ BLOB
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    dans les exemples fournis, on retrouve dans les paramètres un nom de fichier et une taille de fichier liens vers l'emplacement du fichier mais je n'ai pas ces infos directement comment les extraire de mon BLOB.
    Actuellement sur ma page j'ai uniquement ma variable qui récupère mon blob à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
     
    $imageblob=$this->bateau->image_elevateur;
     
    ?>
    j'avoue j'ai un peu de mal a comprendre le fonctionnement de ce type de variable malgré plusieurs FAQ et forum parcouru ...

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Tu peux déjà tester si c'est du powerpoint en enregistrant les données dans un fichier avec file_put_contents et en regardant ensuite si powerpoint sait ouvrir ce fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $imageblob=$this->bateau->image_elevateur;
    file_put_contents('test.ppt', $imageblob); // Enregistre le contenu du blob dans le fichier test.ppt

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux aussi déterminer le type et l'encodage MIME en passant par finfo_​buffer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $finfo = new finfo(FILEINFO_MIME);
    echo $finfo->buffer($imageblob) . "\n";
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Celira Voir le message
    Tu peux aussi déterminer le type et l'encodage MIME en passant par finfo_​buffer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $finfo = new finfo(FILEINFO_MIME);
    echo $finfo->buffer($imageblob) . "\n";
    avec le code fourni, j'ai ceci en retour écran

    application/octet-stream; charset=binary

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par pascal-od Voir le message
    Tu peux déjà tester si c'est du powerpoint en enregistrant les données dans un fichier avec file_put_contents et en regardant ensuite si powerpoint sait ouvrir ce fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $imageblob=$this->bateau->image_elevateur;
    file_put_contents('test.ppt', $imageblob); // Enregistre le contenu du blob dans le fichier test.ppt
    Avec ce code j'ai le fichier test.ppt de généré mais lorsque je l'ouvre il me dit "impossible d'ouvrir ce fichier" ....

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Essaie d'afficher le type mime pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $img = getimagesizefromstring($imageblob);
    echo ($img["mime"]);
    A+.

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Essaie d'afficher le type mime pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $img = getimagesizefromstring($imageblob);
    echo ($img["mime"]);
    A+.
    j'ai malheureusement le retour suivant :
    Fatal error: Call to undefined function getimagesizefromstring()

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    La fonction n'existe que depuis la version 5.4 de php, si tu utilises une version antérieure, tu peux créer la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
       if (!function_exists('getimagesizefromstring')) {
          function getimagesizefromstring($string_data)
          {
             $uri = 'data://application/octet-stream;base64,'  . base64_encode($string_data);
             return getimagesize($uri);
          }
    }
    ?>
    Source: http://php.net/manual/en/function.ge...ing.php#113976

    A+.

  16. #16
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Sinon tu as la librairie GD activée?

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    La fonction n'existe que depuis la version 5.4 de php, si tu utilises une version antérieure, tu peux créer la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
       if (!function_exists('getimagesizefromstring')) {
          function getimagesizefromstring($string_data)
          {
             $uri = 'data://application/octet-stream;base64,'  . base64_encode($string_data);
             return getimagesize($uri);
          }
    }
    ?>
    Source: http://php.net/manual/en/function.ge...ing.php#113976

    A+.

    je n'ai rien en retour de ce code ...

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Sinon tu as la librairie GD activée?
    oui

    GD Version: bundled (2.1.0 compatible)
    FreeType Support: 1
    FreeType Linkage: with freetype
    T1Lib Support: 1
    GIF Read Support: 1
    GIF Create Support: 1
    JPEG Support: 1
    PNG Support: 1
    WBMP Support: 1
    XPM Support:
    XBM Support: 1
    JIS-mapped Japanese Font Support:

  19. #19
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par mathieu.dubiez Voir le message
    je n'ai rien en retour de ce code ...
    Tu dois appeler la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       if (!function_exists('getimagesizefromstring')) {
          function getimagesizefromstring($string_data)
          {
             $uri = 'data://application/octet-stream;base64,'  . base64_encode($string_data);
             return getimagesize($uri);
          }
    }
    $img = getimagesizefromstring($imageblob);
    var_dump ($img);
    A+.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Tu dois appeler la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       if (!function_exists('getimagesizefromstring')) {
          function getimagesizefromstring($string_data)
          {
             $uri = 'data://application/octet-stream;base64,'  . base64_encode($string_data);
             return getimagesize($uri);
          }
    }
    $img = getimagesizefromstring($imageblob);
    var_dump ($img);
    A+.
    c'est ce que j'ai mis mais en retour j'ai uniquement
    bool(false)

Discussions similaires

  1. [MySQL] migrer Access vers PHP mySQL
    Par antoine dpt dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 07/06/2010, 19h52
  2. transfert variable flash vers php ( mysql)
    Par x3nt0r dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 05/12/2008, 10h50
  3. Réponses: 1
    Dernier message: 19/01/2008, 14h15
  4. [ODBC] Experts: Export de données Access vers PHP: probleme d'attributs
    Par kenny49 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/06/2006, 14h42
  5. [Wamp] Migration Access vers PHP
    Par w0lf dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 27
    Dernier message: 06/06/2006, 12h58

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