2014-02-24 57 views
0

當我第二次啓動應用程序嘗試進​​行新下載時,它就是之前下載的內容數據!這裏是代碼:如何刪除下載緩存?

$output = RP_MAIN . 'docbook/data/myfile.pdf';   
header('Content-Type: application/x-download'); 
header('Content-Disposition: attachment; filename="'.'manuel.pdf'.'"'); 
header('Cache-Control: private, max-age=0, must-revalidate'); 
header('Pragma: public'); 
ob_clean(); 
readfile($output); 

那麼如何在下載之前清除下載緩存?

回答

0

添加一個隨機參數到文件URL,這樣瀏覽器認爲它是一個新的文件:

$output = RP_MAIN . 'docbook/data/myfile.pdf?version=1.5'; 
+0

它不起作用:下載大小爲空白! – pheromix

+0

每次我想下載時,我應該更改'版本'參數的值嗎? – pheromix

+0

try header('Content-Disposition:attachment; filename =''。'manuel.pdf?version = 1.5'。'''); –

1

ctrl+F5會迫使瀏覽器刷新和清除緩存。 然而,爲了使頁面加載而不必每次使用緩存,你可以試試這個 -

$output = RP_MAIN . 'docbook/data/myfile.pdf?'.rand();

它將對每個頁面加載時間的文件名的最後一個隨機數,因此瀏覽器會認爲它每次都是一個新文件,而不是使用存儲在緩存中的信息。

+0

這種添加參數的方法不起作用! – pheromix

0

我將?nocache添加到CSV文件URL的末尾。它並不一定是這個詞,但它適用於在Excel中打開文件。似乎沒有必要在那裏有一個隨機數字,至少對於Excel來說。