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 :

Affichage d'une image stockée dans un champ image d'une bdd sql server


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut Affichage d'une image stockée dans un champ image d'une bdd sql server
    Bonjour, je rencontre un problème pour afficher une imageà partir d'un champ image stockée dans une bdd sql server. J'ai essayé en utilisant un script mais il y a toujours un lien cassé. je sais qu'il est préférable de stocker plutôt le chemin mais je n'ai pas le choix dans ce cas de figure.

    page-1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?php
    /*
    Template Name: CA
    */
     
    try {
     
        $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;charset=french_ci_as", $username, $pw);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->setAttribute (PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
    } catch (PDOException $exception) {
        echo $exception->getMessage();
        exit;
    }
     
    /?>
        <div class="wrap">
            <h1>Notre Conseil d'administration</h1>
            <hr />
            <?php
     
     
                $retour = $dbh->prepare("SELECT COUNT(*) as nb_membre FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
        JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
        JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
        WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1");
     
                $retour->execute();
                $membreparpage=30;
                $dess = $retour->fetch(PDO::FETCH_ASSOC);
                $totaldesmembre = $dess['nb_membre'];
     
                $nombredepage  = ceil($totaldesmembre/$membreparpage);
     
                echo  "<hr class='hr-left'/><div class='pagi'>";
                if (isset($_GET['pagination']) && is_numeric($_GET['pagination']) && $_GET['pagination'] > 0 && $_GET['pagination'] <= $nombredepage)
                {
                    $page = intval($_GET['pagination']);
                }
                else
                {
                    $page = 1;
                }
                if ($page > 1):
                    ?><a href="?pagination=<?php echo $page - 1; ?>"><span class="dashicons dashicons-arrow-left-alt2"></span></a> <?php
                endif;
                for ($i = 1 ; $i <= $nombredepage ; $i++)
                {
                    if($i==$page){
                        $class="active";
                    }else{
                        $class="inactive";
                    }
                    echo '<a href="?pagination=' . $i . '"class='.$class.'>' . $i . '</a> ';
                }
                if ($page < $nombredepage):
                    ?><a href="?pagination=<?php echo $page + 1; ?>"><span class="dashicons dashicons-arrow-right-alt2"></span></a><?php
                endif;
     
                echo "</div><hr class='hr-right'/>";
     
     
                $premieremembreafficher = $page* $membreparpage - $membreparpage;
     
     
     
                $reponse=$dbh->prepare("SELECT P.IDPPH,P.nom,P.Pre,P.Passif,T.IDTIE,T.Libelle,T.Secteur,P.FctEnt,P.Photo_BInaire,P.FctOrg,P.NumAdmin FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
                                                                    WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1 ORDER BY P.NumAdmin ASC
    ");
     
     
                $reponse->execute();
                while ($donnees = $reponse->fetch()) {
     
                    $id=$donnees['IDPPH'];
                    ?><div class='membres entreprises'>
     
                    <?php echo '<img src="image.php?id='.$id.'" class="img-membre"/>';?>
                    <h3 class='nom'><?php echo utf8_encode($donnees['Pre']); ?> <?php echo utf8_encode($donnees['nom']); ?> </h3>
                    <p class='fct membre'><?php echo utf8_encode($donnees['FctOrg']); ?> </p>
                    <p class='ent membre'><strong>Entreprise: </strong><?php echo utf8_encode($donnees['Libelle']); ?></p>
     
     
                    </div><?php
                }
     
            $reponse->closeCursor();
     
            ?>
     
        </div>
    image.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
     
     
        try {
     
     
            $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;", $username, $pw);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
            $reponse = $dbh->prepare('SELECT P.Photo_BInaire FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    WHERE P.IDPPH=:id AND P.IdLibType IN(1,2,3,12)');
            $reponse->bindValue('id', $_GET['id'], PDO::PARAM_INT);
            $reponse->execute();
            $donnees = $reponse->fetch();
     
     
        } catch (EXCEPTION $e) {
     
            die('Erreur : ' . $e->getMessage());
            exit();
        }
        header('Content-Type: image/jpg');
        echo $donnees['Photo_BInaire'];
     
    ?>
    POuvez-vous m'aider svp

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si dans ton navigateur tu appelles directement ton url image.php?id=xxxx, tu obtiens quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    j'obtiens toujours un lien cassé

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Hein ? Qu'est ce que tu appelles un lien cassé exactement ?
    Retire le header() egalement pour le test.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Je veux dire que l'image ne se charge pas, j'ai donc une croix rouge à la place de l'image. J'ai essayé en retirant le header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    <?php
    /*
    Template Name: CA
    */
     
    try {
     
        $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;charset=french_ci_as", $username, $pw);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->setAttribute (PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
    } catch (PDOException $exception) {
        echo $exception->getMessage();
        exit;
    }
     
    /*get_header(); */?>
        <div class="wrap">
            <h1>Notre Conseil d'administration</h1>
            <hr />
            <?php
     
     
                $retour = $dbh->prepare("SELECT COUNT(*) as nb_membre FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
        JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
        JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
        WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1");
     
                $retour->execute();
                $membreparpage=30;
                $dess = $retour->fetch(PDO::FETCH_ASSOC);
                $totaldesmembre = $dess['nb_membre'];
     
                $nombredepage  = ceil($totaldesmembre/$membreparpage);
     
                echo  "<hr class='hr-left'/><div class='pagi'>";
                if (isset($_GET['pagination']) && is_numeric($_GET['pagination']) && $_GET['pagination'] > 0 && $_GET['pagination'] <= $nombredepage)
                {
                    $page = intval($_GET['pagination']);
                }
                else
                {
                    $page = 1;
                }
                if ($page > 1):
                    ?><a href="?pagination=<?php echo $page - 1; ?>"><span class="dashicons dashicons-arrow-left-alt2"></span></a> <?php
                endif;
                for ($i = 1 ; $i <= $nombredepage ; $i++)
                {
                    if($i==$page){
                        $class="active";
                    }else{
                        $class="inactive";
                    }
                    echo '<a href="?pagination=' . $i . '"class='.$class.'>' . $i . '</a> ';
                }
                if ($page < $nombredepage):
                    ?><a href="?pagination=<?php echo $page + 1; ?>"><span class="dashicons dashicons-arrow-right-alt2"></span></a><?php
                endif;
     
                echo "</div><hr class='hr-right'/>";
     
     
                $premieremembreafficher = $page* $membreparpage - $membreparpage;
     
     
     
                $reponse=$dbh->prepare("SELECT P.IDPPH,P.nom,P.Pre,P.Passif,T.IDTIE,T.Libelle,T.Secteur,P.FctEnt,P.Photo_BInaire,P.FctOrg,P.NumAdmin FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
                                                                    WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1 ORDER BY P.NumAdmin ASC
    ");
     
     
                $reponse->execute();
                while ($donnees = $reponse->fetch()) {
     
                    $id=$donnees['IDPPH'];
                    ?><div class='membres entreprises'>
     
                    <?php echo '<img src="image.php?id=1" class="img-membre"/>';?>
                    <h3 class='nom'><?php echo utf8_encode($donnees['Pre']); ?> <?php echo utf8_encode($donnees['nom']); ?> </h3>
                    <p class='fct membre'><?php echo utf8_encode($donnees['FctOrg']); ?> </p>
                    <p class='ent membre'><strong>Entreprise: </strong><?php echo utf8_encode($donnees['Libelle']); ?></p>
                    <a href="http://b4c.icwyt.be/membres-2/fiche-entreprise/?&idpph=<?php echo $donnees['IDPPH']; ?>" class="decouvrir membre">Découvrir</a>
    				<a href="http://b4c.icwyt.be/contacter-ca/?&idpph=<?php echo $donnees['IDPPH']; ?>" class="decouvrir membre-ca">Contacter</a>
     
     
                    </div><?php
                }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
            $reponse->closeCursor();
     
            ?>
     
        </div>
    <?php
     
     
     
    /*get_footer();*/
     
    ?>
    image.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;", $username, $pw);
     
     
            $reponse = $dbh->prepare('SELECT P.Photo_BInaire FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    WHERE P.IDPPH= :id AND P.IdLibType IN(1,2,3,12)');
            $reponse->bindValue('id', $_GET['id'], PDO::PARAM_INT);
            $reponse->execute();
            $donnees = $reponse->fetch();
     
     
        echo $donnees['Photo_BInaire'];
    Dans ma db dans le champs Photo_BInaire toutes les valeurs ressemblent à ça :FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1
    (je n'ai mis qu'une partie, c'est 10x plus long)
    N'y a t'il pas un traitement à faire avant de les injecter directement dans la balise img ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'obtiens-tu sans le header() en appellant directement la page image ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Toujours la même chose, l'image ne se charge pas

    Nom : imagerror.jpg
Affichages : 705
Taille : 243,8 Ko

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    c'est la page image.php ça tu crois vraiment ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Désolé je ne suis pas sur de bien comprendre.

    J'appelle le fichier image.php dans la balise img se trouvant sur la page ca.php.
    Dans le fichier image.php, j'ai retiré le header et j'ai également essayé en mettant une valeur directement dans la requête sql mais l'image ne se charge toujours pas.
    Pourtant quand je test la requête SQL séparément(dans un logiciel de gestion de bdd) en lui mettant 1 comme id par exemple, il me retourne bien un valeur

  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
    Ce que sab' te demande de tester , c'est accéder directement au script image.php en copiant-collant l'url dans ta barre d'adresse et pas en l'intégrant dans une balise img. Tu peux essayer de faire un clic-droit sur l'image cassée et de sélectionner "afficher l'image" dans ton navigateur.
    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
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Ok sorry, je ne sais pas voir le fichier. quand je met l'url pour visionner le fichier, j'ai un pop up qui s'ouvre pour me demander d'enregistrer le fichier ou de l'ouvrir dans mon éditeur de code.
    Si je choisis un navigateur à la place de mon éditeur, le pop up revient

    Et si je veux afficher le fichier en mettant le header, j'ai un message d'erreur indiquant que l'image ne peut être affichée car elle contient des erreurs

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et si tu ouvres avec ton editeur tu as quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC0001108010E00EC03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00F62B1E2263EF56EB216E65850AC78058F5AACD24CE72CEC7F1C56CE2C93A0A2B9D1248A72B2303F5CD5A8751950812E194FA751438303628A8E395248F7A918F5CD42F74776107E26A1E805AA4ACE695DBAB1A8BCC7073BCFE7480D7A5CF359F1DDB8203FCC3D7BD5E460EB91400EA28A2980534D2D21A4034D2529A4AA01453853453850014BDA928A90168A28A6014D34EA69A4025252D2550052D251DE8017BD1451401900669C2DE49395538F5C54B69189A4C9E557923D6B480006074F41D29B766061CD6F2C6A58C648154C392D8C575079EBDEB36E2C17ED51BA00159B0C2A94D7501F6B6B8B5E4E0BFCD81D0545820906B5318181F4AAC6DC35C927A1193EF59BD581008D9B80A4D3248645E769C7D2B5380001C0F6A4E0D20320706ACC1295239E3BFBD3AE2D8EE0F18EBF7AA30920FE03401A4082011D0D150C05BCBF98118A96980521A5A4FC6801A69282C01E48FCE9010DF779C7A53403A9693345003A8A3B514AC014B4828A005A434506900DA4A5A4AA00A28A280168A28A1B02A69A46C70383BAAF5625BDC8B79B27943C1F6AD85915D432B02A7B8E94E516980EA438E339EB41200249C01DEB326BF56B9511B7EED1B2C73D4D2480D5A4C8C9FA528208CFAD5369F6DD1FEE81B693D18CB94948A430CA9CD2D21067DFF002A2A85D5D12E238588E7E66AAF3EA2B691169653C0C9FA7AD080D72E0753C540F771A8EB935C4CBE31325CF9681C8E3680464E7A76AB09797522EFDD818C900750686D22D41B3A17BDE4EE728A3A0CF5AAB26AA87017CD6C772481FCEB2F63C877173B8E33DF3FE14E54F9C7CBDB049A873EC68A92B6A6836A608E14F033CBD2A6AA8ADBD548380082060FE559D20E492AD9006703AFBD529F0006524639E285503D9763ACB6D5609C60B00C393CFCBF8FA7E356E29E298168E45751D594E40FC6BCE669E541B9324E0E48183DB9CF7AA516B125A5E238389376012A01CE474C751C55A9A643A6D1EB1456568FABDBEA56EBB245328505D7F01FE22B52A8CC5A514DA70A00290D2D21A403692968A6014B4945002D14514018120E0D55324D093E548C3E87FA56ECFA78725A3201EE0F4359B3594EA71E5923D40AD549313293DC4F2E04B2BB0F42702A68C7E1C600C7142D95C3B710B7E35A56DA632A833103D85372481135BDCBFD9586D24A0DA1BD6A15E73CF3D4D69AA2A26C5002F603A55792D4124A7158377632AF98C9F7588FA531E591C619C91E952B4320EA84D4262958E021CD2023DEB129662155464E4E315C1F88B599AFA630DB925415F2D579DE58E013EC71D3EBD78C747E22172123B58F20B6DDD8EFB89181EBC024FD56A8DAE88AB279B300EDB4A0CAFDEC8E47F438EC31C6696A5C519DA568E622A70CEC465E46DD8727BF5E7F41F5E31D44500DA14280A30703D692188421989CB372189F9AAD20E1703AF358CA5A9D515A088814602FD294C6586141073DEA6E0503BE4103D290158DBED53F2A9EFD39ACEBB8979C6411C8ADB2011546E62C83907F0A4CB8D8C30847504679AA3AA69F1DC40485070436338FC735AE54807393D702ABB301C3773E9ED42958251BEC73F693DDE9FAA7996921729872809C91D0F1D7271D3F3CD7A9E93AAC5AB5979B19F9D78743D55BFC9AF37BAB78D183320313B67A700F43F9D5ED26F24D2B5B498332DBC8177F230548EFEE39E7D2BA632B9C9520D1E954E14C5605720E453C55190521A534D3400945251400B4B4DA5A002945145003A93FCF5A8E3B8593A6E1819191D452457293361376319048E0D004B4BC53247D88CDDC52070A8ACC793D8526C0928A6AC8AC70320FA1A048ACC54678383480774A4A19828C9380066A312A107191E99A680C3BA8CCBA9C92B7214ED51E98EB8F7273FE7A2F94B1C61987CBDF27AFFBDEB93926946E762C781B8FE27039FCF34DB89373041D30339E95137A1AD34DB236C9753C1CF418E829EAC5CE07231C93EBEB508E7953E82AC471739C9C0ED5824753D09307041C134053BB18FCCD5A48F0BD3EB9A73478C9E0E7DAAAC47322B63838A8641B9483CD5DC71DAABBAB13C2E403D00A4D0D48C79A1E08039359B71090090DD7D6BA19622DCF4F5F7ACDB887209D8491DC7359B5635525B1805D5E368980E7839351472ED1B5802612BF53CF3F98C8C7B0A9AE2228CC57249C8231CD3608F2C72769F51EA3BFF3FCEB583D489C743D0742B9373A5C45FEFA128DCFA1E3F4C569D73DE186511DC28C7CCC24C7D491FD2BA0CD745CE16AC2D251494C425145140051451400EA4A28A00AD0AB82E151BCB0A30ADD8FA0F6A6DB07598045758C292548E14E7A0F6ABC7FFD549F9FE740586CBCC4DC6734C60414623200C1152827347D3340108CBCC1C02303A9EB4F8810A73DD8D3CF2283CF7EF40114CB98C1C670C09A3CC12300109E0F2474A973D704D35CED889E7A1A560EB639F91DBCFE58F1C003A741FD6A162CCC0938C8A62BB492B85EBDCFA007A528C6E1BBBFAFBD6333AA8EC3D72ADCAE70703DEB420E8063AF5F6AA69F39001C6D35663E1C9EB9A88E85CD97B233C74F7A491F238238A8C31C740BF5A7609E41CFAE2AEE65A1199581C022ABBB1618645FA818A92427773CE0E3914CCA8EA0FF004A866AAC54618624927EA6A8DC9553920007DAB4E46E7D003DB9AA93C6ADB73D73C0F5A968D134644F1AB4279CE3B8EDF5EF54E15532F4E4F07E9FE7FA559B9568C1F9B3862076FF00F5D416DFEBD5B0327AE0F5A711B46FE82ED15F46064214D8463AE4FF0088AEB2B88D3E478EFA151F300DC0F4E4D7651DC432CAF1472A3C8870E8AC0B2FD476AEA8EC704D3E6D09734DA5A4A6405145140051451400B45145003CD25145001451450014514945C02B02FB5E823D4C580B98239581C46C3E66ED93E95BF5C6585821F176A33BC63779718527B7AE3F106B2A8DA3AB0D08C9B72E85F460ADB181CE79C743C669938C1F95703B03569A2549143B83B492083EBDBEB8A8A51FBC23938C63DAB36EE8A8E8C5890A927838FD78A6CD78B6DF39C9C2E76A8EBFE14F00EC38C138E07A554FB2C776C4DC92C09E509E0823A7A7E95256EC5FF8492C950BC930523AE0E47E03BFE153C3AF58DCA9115C29EBD78AA97965A224212E85B200095F31863F0271CD71D7D65A18B82D63AEDA452B1CE3ED009CF700839C53BB43514D9DE9BD8DC10AD9E71907A5234FB636909C20239FAD79F696248F5D8ECBCF491A4201753C11EE2BD0B52B387EC0149C80BC827D2A75668D28BB14CEA76C2475799540CF248159F7FE20D3E1051EE555802410724F2476FA1AF39D5B516875192DBED263887CDB81FBA3D3BFAD32D753D0565856EDEFEE2477F2D3CC8C72DD738CE40F9BA9EB4D26C24E276435FB1B8566172AF9246D0F86FCCF3FA54D6B3C4EFBA371CA93B720F6AC84F1478725816D43321650116788A6411DB38C8EF8CD5EB3F96E11A39032370412588DDE9ED4D6E2E868DC4D2C56B3340CC256CC7B95B0537283918FAE73595E16BB9ED3C6D069F1B05B611F29B40DE48E493DF9FA741C56ACCDE546E18A6DDE3863C374C0CFA56769B6C57C7961729C24ABCE3FBCA40E3DB071F8536FDE562E9463C8DB3D5A8A28AE9479284A28A2818B45145002F6A28A2801D45145001451CD250019A28A2800AE76F36DADEDCDC107710AA3F3623FF4235D1573BADDB35C4B2C2ADB1E40191BDC0EF59545A1D3866B9F531AC9355BED7A4BA96726D22468C45DBA83FD3AFB9AD40C4AAB3127048C8EB8CE07F4A9ECDD608E181A3D936D25B9E3A738AADBB96031F78FF3AC52D0E89BBCAE8B48E0292464FB75AADA9690DA842B19BB9A08F396F2480C47A06C71C71918A91482DB79C7D6AD459746400723824D1E426BA9CD5CF81BC306176B8B32AC492D33C8F9279FBCD9E7F135817BA1787F4ED3A4B68E769A26055230C64E324E33CF73D4115DFB42E081B9D31FDD3D3FC2A28ADED639FCD655F3791BDF923E9CF1F862A9ED62A296E72FE0FF000AC5A420BE92391667CF9692393E5AF7C0EC4E3F2AE9EF5F3064127A826AE48142EE073DF39CFE7551E256B690E7E61DF3536762A3672B9E51A9E991DE6A42E0DBC733C7264ABFF10F400E726BB3B3B4D2EF63479B480D328ED1A39E981D79E0702B0E58F6DE4809DBF3124FA1CF515D1E9623B8B75122A498272480738A516D1A4E1190DBAD32D6EE336CBA6AA46CBCAB803381E83271F9567B6996FA5A2C4A8E8A325778DC83E9EDF535D644890AFEEE345EC0A81585A94B9B9F98F23A9A1BBBB9318F43375D88CDA4C33703C870E403C018238FC48350F84B554BDD66D23192B14F80DF518FE64559D4DC45A15D281C98582E46793F28FC39ACFF0005694D61A858863BA49A70CEE463007CD814D7C486ADEC9A3D86928ED486BA91E43606814514C05A5A68A750014B4945003A8CD149400B9A334945002D1451400551D4620424D8C84CAB7D0F7FD2AF53480CA4300723041E87D8D26AE8A8C9C5DCCC2A19430217BE71D33E9593B499A45CE39E31F5AD9974ADEC552E1A389860A850481E81BB7EB597710AC175244830AA781EDFC23F0AC249A3B21522C45F940391EF8AB36F2EC7E467155C8C9E71FF00D7A4327007A75ACEE69BE85FBABE8A284BBE3A579A6A5E25B9D5BC476FA65829651203291D901E73F855EF176B86DACDA1462657CA803AFD697E1F6882D6D5F51B88F37539C866EC3B01ED42F799B24A11D4ED549319C95C6074341DAB62DF386627A0EB8AC5D5B49D5E6944FA6EAD25BA01F342F12C8BF86467F5FCAB9BD475AD5ADD52D67854F3F318FEE360F500E48FA735A3D0CA2D498FD5E2417932C4EA495CA95E704FFF00AAB03FB46FB44D4A39C36EB390ED65CF43D89F4CD4E5E7BADAC2574030485EA7EA7A8FC08AAF247E7412452A1757EC7A1C1A8B5CDD348F42D3F5886E2D565670CAC3D464563DD4E24B867072B9EFE9DAB8CD1B569EC256B09CB295276927A8ED5D15BB162CCE7209A9EA26BAA2EDCB131C6B804B11853F89FE95ADE15B779356560B858433BE47739E3F5FCA9744D2ADB56DD1DC6FDA89BD763ED2ADB88CFA1E091820F5AEC6C6C6DB4FB7105B26D4CE5B3C963EE7D6B6841B77392A57518F2A2CD21A5A435B9C2252D252D0002969052D002D1451400EA4A28A0028A28A00296928A0028A2928016B13545DB7D91DD41FAF247F4ADBAC7D670248589E70C3F5FF00F5D44F634A6FDE298C649CE0E78A63A131E3239A6A10702A40DC8C1E3238AE6E877238F93438AE7590F743722966273D40EDF4CF35B51F8874C84792B790208F236871F2E3D2B4EE2D2399B047DFE0803D7FC8AA63C27A46FF003C58431CFB768991007C1E3078E7F1C8F6A2370934F71CFE2181D58C70DCCE235CBB45016503DEB2EEEEE391FF00D234CBFDC785CDBB36E3CE71F91AE81AD359084595E594687014496C58F4F6600FE43DAAA5D4BAFC7302D3E9CA158E716CEC4F1FEF8C75FCAAEC106F648E42EFCE43218B49BA1B70DF3201C1E4679F4AC0D6AFE5D21A28E5B09CDCCAC5511769C918C9241E9CD765AAC1E24BE918C5A8DBDBAF95E5B08610188E7BBEE2339EC071EFCD6145A5F9DA83CB71219EE19423C85003803030063038E477E6A6F634B49EE65DAC4FA9BC0EF18475623A72063A7D2BA10815C229071D7F0ABDA7E9915B5BCD291939C8F6E067FAD66F9D89A42320E76800566CA4771E0F8B105C4BD8ED507F327F9D74C2B27C396C6DF44B7CF0D27EF0FF00C0BA7E98FCAB5857643E13CAA8D39B1690D0692AC8614B49473400A29692968016928A4A007D14514005145140051451400945150CF3A5B4659CE3B01DD8D17012EAE45B479C65C9F947BFA9AC21BEF4DEC87E6684A0DC4F193D47D395A91E592E2E7CC908EBC0F6F4AB9A4C119B1B8553FBC9657693D9B000FD02D4EE52D1DCC4572B2608C67AFB5595C67AFD28B9B7C336475E71E87D2A146C2956EA3839E95CCEE99DD195D1790E48231C1F5AB633B79E86B3A29802BF356821DC01EDE94D6A4CB42097CD03E538E78C2F4ACBB9B7765C48E4EE5EC4FF009FFF00556E95EFC7E759F21F9C86DAC3AE2A99A536FA1CF4F6B2052B10DA18E33D40F7FAFB5410DA0B705C72C4E549FC7AD6EDC6D6538E39C803A64F7AC79E7DC846140C6060F4E393FA566CD9B6452DC6CB374E4173B8FE5FE7F5AC88F62BAB4C4AC60E5883CE3FC7D2ACCC4B120739F5EC2A07B56B8B4B88A26C48D1315E33960A4A8FC7007E34946EC894AC8F54B3B8B7BAB38A5B56061230B83D3B6DFAD59C8EDCD794F85FC413DAC4922B6E47037A9E8DF5FF00115E91A6EAB6BA9C5985C0900CB467EF2FBFD3DFA57627A58F2E4ACEE5EA4E68EF8EE7B514C91296928C8A062D28A4A5A005A4A28A00751451403614514C9258E142F23AA28EEC7028B85C7FB5159371AEC4AA4408643D89E07F8D664D7F7372C77B901BB0E052E61D99D04D7D0420867DCC3A2AF39AC89667B89FCD9063B28FEE8F6AAF6EB8DCC4F4FCF8FF0023F2A9B04119C9FC2A5CAE55AC0010D8C77FEB56F486297979090304ACC08EA73F29FF00D0455603EB4B0CC2DF568091812031924F4CE31FAE29C3714B62EEA312AC81B1FEB33FF7D01CFE639AC4B94F981070DEFEBEF5D45C43F68B69222C55BF8580E54F4C8FF3EB5CC46E2E7CD8261B2EADD8A4D18EC78E9DF07823BF359D58D99BD192922A89CEFC1C71DFBD6941759215BEFEDE3FDAAC6B90F0C841C7273BBB1A85AE0B47B1B70E7231DBE86B13A1EA74AD76BE5E37A8E7AD52BBBCD98DA7181D73D6B8FD4352D42DC801BCEFEE8DD86FCAB1A4D72EE571BEDE6C8C7A607EB45CD2292573AEBBD5514B2BC802839E3B8E7005667DAFCE72170140DA3E95910492DCB66585957D4B73D6B4A3014642F4ED8A1A1B9A7B0F2DB8EEE9BB24D49A65EC716BF676840324BE630E7EEED19247E38FA55672D83EDDCD737A3DFBDDF8BA4BA0711DACF1DB23633FC443FE65B3F873574D5E48CAA7C2CBDA666CF53BEB0C10B6F3C9128EC029207E801FC6B7A391A2915E166561CA907953ED8E9585A9E2DBC7378EDF76E522B85507B940AD9FF8129AD553F2865639F6635B4D599C71D51D869FE30223F26FA22CCBC7991F561EA41EFF004ADBB6D7B4DBA0BB2E9149ED27CA47E75E66D96018360E31F4A85A629F3AB1F46E692909C0F610432EE52197D41C8FCE94F0706BC7E0D4EF2C5FCCB4B892319DC5558E01FA5751A678E252A12F6256C0C165F949FE9FA557312E2CEEB07D0FE345655AEBFA75C100CBE4B1ED27CA3F3E95A818150C082A7A1078355724752519A33400FF00E63A8F4FAD52B8D52D2DB20C9B987F0C7C9FCEB0E7BBBBBC1891C84EC8A703FF00AF500B7507A6707BF63EB52D97CA5EB8D76E24C8811635C753F31FCBA7E954489A6903CCECEDEA4E719F4A9846115781C0E29C41C74A9B858836051C014BD58004F5C0A7F4E86A580020B311C76A431F1A00AA0F4FF3FF00D7FCE9F8E79E9F5A5E9C9DB93D3269E00C123071D31DE801A7E5032A49C6063BD457111D9F2E3CCE0A9EB860411F9102A700B1C9CE4F4FA7A5291B8607E14D3B313362370F0C72AE76BAAB73D467B7E5C7E75CF789ECA4B574D72D14B490AECB988759231DFD4919247B122B674A25ECDA363828CC07D0F23F9B0AB6A3259187519E7D7A7E9CFE75A3574441F2CAE7281A1D42D9678D81DCA0FE95953D9B28F94F03E6F7AB3A958C9E1BBEDF129FECD9DB2AA3FE5931EAB8F4CF23D338F4CD969A29D376E2723208EBEF5CD24D3B33BA32E78DD1CADDC5B536C88595BAE0F5FF000AA4A2373809823D7A574777602425970FBBFBBD3F1FFEB5649B551237CC383CF38CD2B169F4082D812BDF273D6A69230ABC2F7E6AC5BA2A8E19738E39A9258C0049C05C74CF5CD0C3639BD6AED74FB096563CA293C7AE3815CCF846076D2CCC7E67B8795C75C93C63A7FBB9C0A6F8D7503349F628C931AB65CFA9AEEBC27E1D686C74E8E44C055466C8C8276B6723BF3FE7B56D878372B99D7A892B195E35B7FF0089DE957E3EECF6AC38F660DFFB39A2DE76118DDC8C726B73C770795A4E90C320C32F97C376319FFE27F4AC3B48CBC593CF4CE2AEB2D4E5A7B13EECE481DFB0CD34807B007BE3A11E94F58F6B9C1E3D09A9BCBDCBC82476209FF0AC6C6A633C124139407F76795E7B7A1F7A7A0E72AF9E791D8D68DC2C3140CD3ED58D792C4F23DFEBFE7A556B1FDFC02450461883914C45BB5B89A318C9207E1C56D59EA9716A730CEC9F43FD3BFF003F7ACC8E119525B38F7EBED567C9C6718E9914D31591D15B7896E4B00EEBBFB071C1FA1ED5AE9AEC7B079B6F70ADFEC2E57F0AE11A36200EBC53926B945DB1CECABE9CD4BBDEE2B23AE118183C7E74F08003F2F7A7EDE01A5C120E32393DEA8433CBC106A3901C1C647E15638E391F9FB53654C81C74F7A00A5D32323A7A54725A9917E591D197EEBC6D8607D73DFE9D3D8D3A470ADF30A9212593712029ED4807597DA558453E240071281B73E995F5F7E87D16AE0000C372474C5440E71B723A649EA6A60A0138A6007FFD540E9DE9C4640E78CD18CD0C092C2430EA0AA4FCB302A78FE2EA0FFE855A92FCA18F420679FF003EB58930654122939421C63BE0838A4F14EAFF00D9DA41302B34F73F2C7B38C0C72DF45E4FD4D6F4D5EC8C67D4E3FC31AD4F7FACCD15EBF9E979B84892AEE52B93C28E9818C63031D7D2BA897444553E49F2371E0024A7E03395FA671ED5C66836492DE42D1344B2C64B1006E2C474FC76F39EA6BB9BAFB648B18B728A1581908C64823B647AD74E220A4F433A32943730658AFADE464311386C6473554ACF21FDE248319EA0D767711EE87CE546040C9DDE98079AAF1790E32C8A48EE0735E6CE3CAEC7A54EA7346E73F05A3F97B951891EB54F528E58607761818E07715DA308C47C015917F662E7EF0CF150529F73C7468B2EAFADC36ECA76CD3846E3A02793F80CD7BBD95AF96F8116D5001041E392DC7F5FC6B3B43D061B5DD76F1AF9AFC2647DD18E48FAFF002FC6B62FEED34DB4691B05C922353FC4C3271F4C575D24D2392BCD499E6BE3BD979757C609949B196D924507A7DEC1C7AFEF17F2359D62B98140E3FAD72DE20BAB8B3F1CEA2B1DD3BA5D4A04E776E2FF0075F91EC7A7E5D2BAAD398496D90D9E73DA8AF1B344D17745B0B9F94A8DC4F3E95723B6C7000C7B7F862A0898075047071FA56B5B30CB6D2095CE71D41AE7B9B1CB6A7A66A135CFCB892252422A36594FA95F5FA66AFDADA086DC2295E0735D06C59463D3800F35535A7874FD39EEDF194652580E796031EBDCF7ED45C195638CF42C4E0E473D2AC6CE401D877A8F4DBA86FA112C4DF2B0FE557C47C9C649EA32D4AE22AB45F2823B1CD5568E40C760602B5B62FA1F98E2A9CA7648C3763D01A6075983824E38A4CFF3A71FBA4F14CCF4C6073FD6A891C3248EDF87B5388CF539EB4D5EB52771F8D0064DF44572E33D49E69963265CA310777CC01FCB1F91C568CB1F9898383EB591B5ADAE72BC104B0E3BE6901B2381EFDAA453C54485648D5D49DA403F4CD4ABC3607E3400FE31C8E3D2971D693BE4D2D3003F74E7B735CDE8710BFF00146AD1EA644B2DBB22C0AFC809825703D31C1F539F5AE8F1D45731A8B1D2BC5DA7EA484AC772A6D652067A7CC9FD47E35B51767632A8AE8E9068905A5D35C5B8211995B0A3001FAFD38FA56AF971ED0D900E00FBFDBB7E5522159625247CA46DF98F383ED4D4F90ED63F29040C1E98AB7264F5BA2BDE34CDA7CF1A6D691919573C0CF4FF001FCEB95B3BA6C947E240D82B8C63F0AEC5D5B183F376396E3DBF2AC3D5B4733CA6E6D462E02E5971C37D4FAFA7E47D6B39C39B53A28D451D18D5BADC460FF9FF0022AD44A2E6558D48C13F31F6AE662BE01D11D88666030460FD3EBC1E3D8D759A1DB95B4FB430F9A6C1DADD36F6FCCE4FE559462EFA9AD4765745CB9B98ACA0F9D58291B4281CFE1ED5C85ECD25CEAF2CB23827CA30A28E7B02703F87AF5FA57677810D8CA64FBAA84E7BAF1D7EBED5C45DB3FDB9B76F3B642064ED1F733F5F4AEDA0933CF9BEA790788435F78C98212C65718CAE7B63FA5779676125AD9AABF5C7233CD6168DA44971E38B29240A54927EF96C6118FF00857A06A9108E5280F18E87A7B7359629FBC6D47446046A19C127A939AB715B00DBE26D9213D41EBF5A608C8940CF5079C753FE735A1029FBC012A06391CE7B9AE43726B7331E26D8C00DC180C1FA1AE67C79758B0B5B45077CF3741DF683FD597F2AEBD17F7647DD6CF5FA5729776E357F1CDADB9C18ED220EF8F5273FAE57F2A046A685A6C9A7E951465487C063CF73FF00D7AD139DCA4F43FE7FC6AFB46AA33F87F8553917127539CF6ED4C0722E538007718AC9BE5C5CFF00AB3C807A135B7103B73B8F5E39AA175123CD9E9C76A40745827038F7A6FF00167BE334EC64629A4FCB8F6AB247AE738A3BF4A41C1E696800C76E3A5675DC1B94E3B723E51CF5AD2CE335148B9278EC28029E9EFBA231900946238CE31FE723F1ABC09CE0E0566A660BC1C615C907F1FF00EBE3F2AD0185F9BB6791DCD2604FD683DE9A0D3BBD300CE71ED58DE23B1FB6E97246A487043C641E8C3907F035B3F5E6A1B85CA30C0391DEAA2ED2B89EC4BE1EBCFB5E970B10158A8CA9396071DFE873F9D6C36E23F8893CF5E38AE4BC3EC6D6F27B50404672EA1531C31E727D7766BAC04633F2839CE09FCEB792D74318E8AC00FCA78CFD7FCFA7148F1E46483C72083E9EBF4A5C0CE001E9F73D6954E3A8F9B91CAE06454DC6729AAE84F73AF59CF0F1BC98E60A7381CB6E1F501813F4EF5D53BC56B0AEF6548D40C6EE31F4FF003F4A6493C70C325C1041036807033DF1F4AC39A7925977B3499F33D0003E5EC2AA31E66129E9619AB6A6D776B3AA1458B631C31E49C77C5636A3FEBE39515492E3242127EE8078FC455E0B24A3CB5690829221E9FDE02AE47A7E154B072728D9C8CF5FF015D09C6060EECC2D26CB66A16B2B0E825C663C0EB8EBF435675AE5C7008CF38FF3ED5B42D7C9955F69E0B0CF984E33CF4AC5D63E7C7AE783D31C1AE4C44AF23A68A696A62B9613124F19C63D2B62DD81407008C6EFF3F9D658C4AEE49C82324639F6ABD6C7E428067A631FE7D315CE6E5F9D088C3C7F7803C1AC3F09C3F68D5758D40E0879FCA438FE05E07E981F856BDEDD25ADACB3671E529720F7DAA5BFF65A3C2B65F61F0FDA2B72F22F98FF0056E6908D461F41F8567CE369C64904EE02B45F03D79AA3703E65F639F7F7A60393054F4C1F5355A681DE42514103AF22A7888C1072307D28963776053238E7EB401A7D7EB4D2BEF4A4E08FA5078EBCD53244C804F3CFFF005A9DDBBD205CF231FE452F639A0014F141F4C75A07B714E00934019B3C7B811B41EE3E5F7AB56EFE6C0A4F2C060F1FE7FC9A1978C003A5320722E1A3EB919FCBFF00D7480B2A3206781E94FC718A8D7AE726A4CE298076DB4D6185EB4EF7A42320D1B818E50C7A9A119C3065EB81EA3FF66AEAAD65F3225231861C85191D39E7EA2B97BE5E564C2929873B9739008E2B774F9311142492AC4FA0E406FEB5D317785CC5FC468377248FBA0F271484800FDD1861DF3D78A9029C291819C8E99A8647022E49E541E00F5A91B33AF660FB60CC7B00E413B7A823F9607E759EA8D2004943C231FDE1FEF7357670F248CDB872E0F239FBC07AFBD5886028BB770FE31C0F7FAD6F749193576476B6CA87A28C391F7FD79FF0AB12A2C7123109F2F078AB0919009E3AA9E9EA714AE15A3647C956CA9C7A119AC5BB97629DCA050D82BC904617DAB99D55B6A31E8473CFD2BA33279B6CA096671F2927A12A4AE6B97D60E0B6791B81C1E958D5F88D60508002C085C1C64E3BF6ABB0264B28237039047E955A06051BAE028FE75721E194F500639AC8D595359617360D09C6F998423DF7381FC81AEA523090AA0E157A7E1C7F8572D1A9B8D76C61C70B2194E5BBAAF6FC5FF4AEB0FA53426CA93300BCFE1CD55C8643D0649AB13AFCC31EF512A751C52B811A82B21ED919C0E6A72178CE7F2350BA32E1C633F773DE9E0E47248381C03C5007FFD9

    d'où ma précédente question, n'y a t-il pas un traitement à faire avant de l'injecter dans la balise img ?

  14. #14
    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
    Hum... pas de message d'erreur, donc la récupération de la base fonctionne bien.
    Ce qui serait intéressant maintenant, ce serait de savoir comment tu fais l'insertion en base.
    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]

  15. #15
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Cette base de donnée existait déja avant mon intervention.
    Pour l'explication cette base de donnée est utilisée dans un programme comptable(qui utilise un autre langage que PHP) moi de mon côté je me contente de récupérer les valeurs des champs pour les afficher dans un site.
    Je devrais bien évidemment m'occuper de l'upload après mais je voulais d'abord voir comment les images s'affichaient avec les données existantes

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    comme ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo hex2bin($donnees['Photo_BInaire']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    j'obtiens un erreur "Input string must be hexadecimal string"

    j'ai essayé bin2hex mais la j'obiens

    4646443846464530303031303441343634393436303030313031303130303630303036303030303046464442303034333030303830363036303730363035303830373037303730393039303830413043313430443043304230423043313931323133304631343144314131463145314431413143314332303234324532373230323232433233314331433238333732393243333033313334333433343146323733393344333833323343324533333334333246464442303034333031303930393039304330423043313830443044313833323231314332313332333233323332333233323332333233323332333233323332333233323332333233323332003332333233323332333233323332333233323332333233323332333233323332333233323332333233323332333233323332333233323332333233323332464643303030313130383031303930304531303330313232303030323131303130333131303146464334303031463030303030313035303130313031303130313031303030303030303030303030303030303031303230333034303530363037303830393041304246464334303042353130303030323031303330333032303430333035303530343034303030303031374430313032303330303034313130353132323133313431303631333531363130373232373131343332383139314131003038323334324231433131353532443146303234333336323732383230393041313631373138313931413235323632373238323932413334333533363337333833393341343334343435343634373438343934413533353435353536353735383539354136333634363536363637363836393641373337343735373637373738373937413833383438353836383738383839384139323933393439353936393739383939394141324133413441354136413741384139414142324233423442354236423742384239424143324333433443354336433743384339434144324433443444354436443744384439444143933463835373544333734333543334638423746453431463337464437333646453436394130454137393946463030363833353135343638413932384646464439 etc...

    avec toujours aucune image qui s'affiche

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Y'aurait pas un 0x caché au début ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $source = hex2bin(substr($blob, 2));
    j'ai essayé bin2hex mais la j'obiens
    Tu as raison au petit bonheur la chance ça aurait pu marcher.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Points : 4
    Points
    4
    Par défaut
    Il y a effectivement 0x au début de la valeur mais ça reste inchangé, il y a toujours l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     
    $reponse = $dbh->prepare('SELECT P.Photo_BInaire FROM  [ID143953_b4c].[dbo].[SQL_PPH] P
                                                                   WHERE P.IDPPH=:id AND P.IdLibType IN(1,2,3,12)');
    $reponse->bindValue('id', $_GET['id'], PDO::PARAM_INT);
    $reponse->execute();
    $donnees = $reponse->fetch();
     
    header('Content-Type: image');
    $blob=$donnees['Photo_BInaire'];
    $source = hex2bin(substr($blob, 2));
    echo $source;

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il y a effectivement 0x au début de la valeur
    Ca aurait été bien de ne pas censurer cette information on aurait gagné du temps ...
    Quelle erreur ? Qu'affiche image.php maintenant ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Afficher une image stockée dans un champs blob
    Par encoupe dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/11/2006, 12h00
  2. Réponses: 2
    Dernier message: 20/10/2006, 19h28
  3. Afficher une Image stockée dans un champs BLOB oracle
    Par nonaparus dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2006, 08h26
  4. Ouverture d'un fichier stockée dans un champ image
    Par sat478 dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2006, 18h27
  5. Réponses: 1
    Dernier message: 18/05/2006, 12h52

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