Inserer pdf dans MySQL

Bonjour tout le monde,

J'essaye d'insérer un fichier pdf dans ma table, j'ai donc crée un champ "pdf" de type LONGBLOB. Lorsque je l'insère, pas de problème. Mais une fois que je veux réouvrir le fichier (via phpMyAdmin), en cliquant directement sur la case de ma colonne "pdf", Adobe me dit qu'il n'a pas pu l'ouvrir car le type de fichier n'est pas prise en charge ou est endommagé.

De plus, lorsque je clique aussi dessus, il me télécharge mon pdf en .bin

Donc jai l'impression que le pb vient du fait que PhpMyAdmin semblerait convertir mon pdf en .bin

Si quelqu'un pouvait m'aider, merci d'avance

2 réponses

  1. Modérateur
    Bonjour,

    Je me permet, au passage, d'indiquer qu'on évite de stocker des fichiers directement dans la bdd....
    A la place, on stockera les fichiers sur le serveur et on ne mettra dans la bdd que le chemin vers ce fichier.

    Pourquoi ?... car plus la table est remplie... plus elle est lente.....
    Et souvent, la place disponible sur les serveur pour les fichiers (chez un hébergeur...) est bien plus importante que la place disponible pour la bdd elle même )

    Et si vraiment tu souhaites conserver ton pdf dans la bdd.... et bien ouvre le depuis ton code PHP (au lieu d'essayer de l'ouvrir directement dans phpmyadmin )
    via par exemple
    <object data="data:application/pdf;base64,<?php echo base64_encode($lecontenuduchampblob) ?>" type="application/pdf" style="height:200px;width:60%"></object>
    


    1. Bonjour,
      Je vais suivre ton conseil mais comment on fait cela ? Je développe une application en Java
    2. Modérateur
      @Kilkenny95Ton application java ... tu codes une partie "serveur" et une partie "cliente" ?

      J'ai l'impression que tu veux faire une appli "cliente" qui accèderait directement à la bdd à distance...... hors ce n'est pas une bonne pratique.
      Une application "distante /cliente" ne doit jamais accéder à une bdd directement.
      Elle utilisera (ont dit "consomera" ) des webservices.
      Les webservices, eux, seront mis en place sur le serveur. et ce sont eux qui attaqueront directement la bdd.

      Quand à afficher un PDF en java.. je ne sais pas. Faut regarder sur le net.
    3. Pour l'instant je developpe en locale, avec mon appli et ma bdd sur mon pc.
    4. Merci en tout cas !
  2. Contributeur
    bonjour, fais-tu l'insertion via phpMyAdmin?
    as-tu essayé de renommer le .bin en .pdf?
    1. Bonjour, oui via phphMyAdmin.
      Ca ne marche pas non plus