2017-07-31 1 views
0

BLOBを取得してページに表示しようとしています。 私は次のコードを使用していますが、希望の出力であるpdfの代わりにbase 64の文字列だけが表示されています。phpを使用してデータベースからBLOBをデータベースから取り出し、それをHTMLページに表示しない

以下は、私が使用しているコードです。

<?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> 

私は

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

を使用してみましたが、さらにこの

<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> 

ようiframe内にそれを置くしかし、pdfファイルの読み込みに失敗しました。

----------- EDIT 5/8/17 --------

私は今、まだ以下のコードを使用して動的にインラインフレームを追加してい私が手ここ

である私の新たに追加されたJavaScript

012:

リソースを文書として解釈されず、MIMEタイプ アプリケーション/ PDFで転送というエラー

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); 

ありがとうございました。

+1

これは既に回答済みです。 https://stackoverflow.com/questions/40948761/display-pdf-blob-file-from-database – Jaberwocky

+0

この回答を見てきましたが、この方法を試してみるとpdfファイルが読み込まれません。 –

+0

コメントを読んでください。コメントをiframeに入れる必要があります。 – Jaberwocky

答えて

0

私は実際にこれでどこにもいないし、Hereを読んで、ファイルをデータベースに保存することを嫌う。 (なぜPDFが読み込まれなかったのかわかりませんでした)

私が今やっていることは、自分のサーバー上のサブフォルダにファイルを保存していることです。次に、データベースにファイルへのリンクを保存しています。ファイルを表示するには、リンクをプルする選択クエリを実行してリンクを取得します。

1

echo $ pdfを削除します。これにより、base64_encoded pdfも同様に出力されます。

関連する問題