2012-10-04 68 views
2

我已經成功地使用下面的代碼片段,在瀏覽器中打開pdf。代替在同一頁面中打開,我希望它在新的瀏覽器標籤。使用此php代碼在新標籤中打開pdf

我沒有使用標籤。這段代碼調用了一些操作,最後它應該顯示pdf。它工作正常,但我希望它在新標籤中打開。

這可能嗎?如果可以的話,請你向我解釋如何去做。

我使用Magento(EE 12.02)應用程序及其在PHP 5.3上。

$file = $pdf_file_path; 
$filename = $file_name; 

    header('Content-type: application/pdf'); 
    header('Content-Disposition: inline; filename="' . $filename . '"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: ' . filesize($file)); 
    header('Accept-Ranges: bytes'); 

    @readfile($file); 
+0

我很好奇爲什麼你認爲代碼不能用於_early_版本的IE – ChrisW

+0

很好的問題,雖然即時通訊抱歉disapoint,它只是我認爲它不會在早期版本的IE請原諒我,我會編輯問題並刪除該部分。 – activeDev

+0

我不太瞭解IE的早期版本,以確定它們是否有PDF文檔的問題;一般來說,不要忘記,因爲PHP是服務器端,它通常是與瀏覽器無關的 – ChrisW

回答

4

你不能從那個請求那麼做。

但是,您可以通過將target =「_ blank」添加到您的標籤來打開新瀏覽器窗口中的鏈接,然後瀏覽器通常會使用新標籤頁。

-1

只是在末尾添加退出():

$file = $pdf_file_path; 
$filename = $file_name; 

header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="' . $filename . '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . filesize($file)); 
header('Accept-Ranges: bytes'); 

@readfile($file); 

exit(); 

這應該只是觸發文件的下載。

+0

Hi Merca。我剛剛添加了你的建議,不幸的是它的行爲方式完全一樣。它會在相同的瀏覽器選項卡中完美打開,我希望它可以在新選項卡中打開。感謝您的建議! – activeDev

+0

我不認爲你可以觸發一個新的與PHP打開標籤。除非您將鏈接上添加目標= _blank下載PDF – Miroslav

1

在其他瀏覽器選項卡中打開它,你應該這樣做在引用它的HTML:<a href="..." target="_blank">下載PDF

+0

嗨。感謝您的建議。不幸的是,這發生在一個行動。該pdf無法在當時作爲鏈接呈現。相反,我需要執行一些操作才能使系統處於狀態以顯示PDF。所以基本上在其他一些行動之後,我想在一個單獨的標籤中打開一個pdf,並且不能通過標籤來完成。感謝您的建議! – activeDev

+0

好的,謝謝,但你不能從服務器端做到這一點,除非你生成一個頁面,重定向到原來的頁面(保持原來的頁面),並在瀏覽器中打開一個選項卡(所有這些都用javascript) – jodarove

0

要在新標籤中打開它,如果你正在使用<a>標籤可以追加像一個目標屬性這樣的:

<a href="your_pdf_generator_link" target="_blank" > TEXT </a>

如果你有一個按鈕,你可以申請一個內嵌的JavaScript如

<input type="button" onclick="window.open('your_pdf_generator_link','_blank')" />

希望這會有所幫助..

+0

請注意,'target =「_ blank」'不遵循w3c建議,並且內聯javascript不遵循現代javascript最佳做法。 – LittleBigDev

2

您可以在打開PDF文檔時打開一個新標籤。例如:如果打開PDF文檔的代碼是一個名爲pdfdocument.php, 頁面上的是像這樣

<?php 
     `$pdf = file_get_contents($PDFfilename); 

     header('Content-Type: application/pdf'); 
     header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 
     header('Pragma: public'); 
     header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past 
     header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
     header('Content-Length: '.strlen($pdf)); 
     header('Content-Disposition: inline; filename="'.basename($PDFfilename).'";'); 
     ob_clean(); 
     flush(); 
     echo $pdf; ` 

一些代碼,你有一個鏈接的網頁,如http://www.example.com/pdfdocument.php,可以顯示它在一個新的標籤喜歡這樣<a href="http://www.example.com/pdfdocument.php" target="_blank"> click here to show pdf preview </a>

相關問題