2017-09-01 44 views
2

我遇到了這個問題,我無法解決我的生活。PDF重定向在Chrome上顯示空白

我有一個簡單的PHP腳本重定向到PDF文件,代碼如下:

$file = "url/to/file";  
header("Pragma: public"); 

header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private", false); 
header("Content-Description: File Transfer"); 
header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="somefile.pdf"'); 
header('Content-Transfer-Encoding: binary'); 

readfile($file); 
exit(); 

如果我直接在瀏覽器選項卡試試吧,它的工作原理,它與Chrome的PDF插件連接,並將其顯示對我來說。如果我嘗試將其放在另一頁的鏈接上,或嘗試通過javascript中的window.open打開它,它會顯示一個空白頁面。這隻發生在Chrome和Safari,Firefox和Edge顯示它很好。在任何人詢問之前,我已經嘗試過使用和不使用緩存和內容描述標頭,我從這裏找到的答案中獲得了這些,這只是我擁有的最後一個版本。

任何想法?

在此先感謝

編輯

我忘了提及這個問題,即使我重新加載頁面的空白標籤上仍然存在。我已經檢查了devtools上的Network選項卡,它們顯示了bot請求和響應(重定向和直接響應)的相同結果,但重定向不起作用。此外,任何一種都不會有任何錯誤。

此外,我試過它沒有退出(),不會改變的事情。

+0

是不是還有別的你需要做的?您正在將文件讀入內存,然後退出代碼。 – jeff

+0

@jeff php'readfile'讀取並輸出:http://php.net/manual/en/function.readfile.php'讀取一個文件並將其寫入輸出緩衝區' –

+0

@KarlReid好吧,你去 - 學習東西新的每一天:-)(注意在開大嘴之前自檢手冊)。 – jeff

回答

0

如由ylva的評論中提到,任何人搜索這個,答案可以在這裏找到

Open PDF from Chrome IFRAME failed with default PDF viewer

主要的是,Chrome的PDF閱讀器嵌入PDF作爲應用程序,所以如果鏈接到PDF文件來自iframe,並且此iframe具有sandbox屬性,chrome不會讓它運行,您必須移除sandbox屬性或必須安裝您自己的PDF查看器。所以它與PHP代碼本身無關。

乾杯

相關問題