2017-07-31 1 views
0

J'essaie de récupérer un pdf blob puis l'afficher sur la page. J'utilise le code suivant mais seulement la chaîne de base 64 est affichée à la place du pdf qui est ma sortie désirée.Tirer pdf BLOB de la base de données en utilisant php et l'afficher dans une page html ne fonctionne pas

Ce qui suit est le code que j'utilise.

<?php 
    //header('Content-type: application/pdf'); 
    require 'connect.php'; 
    $db=mysqli_connect($mysql_host, $mysql_user, $mysql_password,$mysql_dbName); 
    $sql = "SELECT * FROM files WHERE id = 1688"; 
    $sth = $db->query($sql); 
    $result=mysqli_fetch_array($sth); 
    $pdf = base64_encode($result['file']); 
    echo $pdf; 
?> 
<object data="<?php echo $pdf ?>" type="application/pdf"></object> 

J'ai essayé d'utiliser

<object data="data:application/pdf;base64,<?php echo base64_encode(content) ?>" type="application/pdf" style="height:200px;width:60%"></object> 

Et mettre aussi dans un iframe comme celui-ci

<object data="data:application/pdf;base64,<?php echo base64_encode($result['file']) ?>" type="application/pdf"> 
    <iframe src="data:application/pdf;base64,<?php echo base64_encode($result['file']) ?>"></iframe> 
</object> 

Mais le fichier pdf ne charge pas.

----------- EDIT 08/05/17 --------

J'Adding un iframe dynamiquement en utilisant le code ci-dessous mais je reçois un erreur indiquant que

ressources interprété comme document mais transféré avec l'application type MIME /pdf:

voici mon javascript nouvellement ajouté

var iframe = document.createElement('iframe'); 

var src = $('#hiddenBase64').val();//this stores the base64 string 

$(iframe).width("100%"); 

$(iframe).height("100%"); 

iframe.src = "data:application/pdf;base64," + src; 

document.body.appendChild(iframe); 

Merci pour toute aide.

+1

Cela a déjà été répondu. https://stackoverflow.com/questions/40948761/display-pdf-blob-file-from-database – Jaberwocky

+0

J'ai regardé cette réponse cependant quand j'essaye cette méthode le dossier de pdf ne charge pas. –

+0

Lire les commentaires, l'utilisateur nécessaire pour le mettre dans un iframe. – Jaberwocky

Répondre

0

Donc, je n'allais pas vraiment n'importe où avec cela et j'ai lu Here que c'est une mauvaise habitude de stocker des fichiers dans la base de données. (Je n'ai pas été capable de comprendre pourquoi le pdf n'a pas pu charger)

Ce que je fais maintenant est de stocker le fichier dans un sous-dossier sur mon serveur. Ensuite, je stocke un lien vers le fichier dans la base de données et pour afficher le fichier, je lance juste une requête de sélection qui tire le lien, puis j'ai le lien.

1

Enlever l'écho $ pdf. Cela affichera le pdf base64_encoded avant le.