2017-10-10 51 views
-4

我一直在使用這種代碼,以顯示我的圖片從數據庫中顯示PDF文件用PHP

 <dd><?php echo '<img src="data:image/jpeg;base64,'.base64_encode($result['image']).'"/>'; 

但是,當我想說明的pdf文件,我得到我的網頁上什麼都沒有,我只得到我的框架來自iframe標籤。

我已經使用這個代碼,以顯示我的PDF文件(也作爲Blob存儲):

 <dt> <?php echo '<iframe src="data:application/pdf;base64,'.base64_encode($result['image']).'"</iframe>'; ?></dt> 
+2

您的iframe'src'屬性缺少左雙引號「 – ArtOsi

+0

感謝,現在我可以看到一些PDF漂亮的網頁,但仍然無法看到或打開文件。瀏覽器和版本您使用的是哪個 – Frederic

+0

?@Frederic –

回答

1

爲什麼有你有問題不同的可能原因:

  1. 中的數據數據庫已損壞
  2. 從數據庫中檢索數據導致數據損壞
  3. 您創建的HTML在您的瀏覽器中不起作用。

要找出罪魁禍首,您可以執行以下步驟:

  • 檢索手動數據庫中的PDF數據,並嘗試在PDF閱讀器中打開它。如果這不起作用,表格中的PDF數據很可能會損壞。檢查將數據保存到數據庫的過程。
  • 將檢索到的數據編碼爲base64(通過再次解碼並在閱讀器中打開解碼的數據,檢查是否正確完成)。
  • 從您的PHP腳本中輸出base64編碼文本並比較兩個base64塊的相等性。如果它們不同,當從數據庫中檢索數據時,腳本似乎會破壞數據。
  • 使用之前生成的base64數據創建一個靜態HTML頁面,並在瀏覽器中打開它。如果這不起作用,那麼您的HTML不適用於嵌入PDF,或者瀏覽器根本不支持顯示PDF嵌入。
+0

我開始看我的文件在我的數據庫,但是當我下載它時,它變成了.bin和我無法弄清楚如何打開它。 但這適用於在網站上正常工作的圖像。 – Frederic

+1

只需將其重命名爲.pdf,或者從明確指定文件名的命令行中調用讀者。嵌入式圖像的HTML代碼與嵌入式PDF不同。一個是圖像標籤,另一個使用iframe。它們可能會在瀏覽器處理其每個src屬性的方式上存在差異。 – Lothar

+0

當我重命名爲.pdf並嘗試打開時,它說該文件已損壞。 – Frederic

相關問題