2016-08-22 46 views
0

標題(「location:index.php」);不適合我。使用php從服務器下載文件後立即重定向到任何url

$文件是文件的路徑。

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    //header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    header("Content-Type: application/force-download"); 
    readfile($file); 

    header("location:index.php"); 
    exit; 
} 
+1

向我們展示您遇到的錯誤... –

+0

我有類似的問題...通過添加ob_start();和ob_end_flush(); – Dave

+1

你可以嘗試使用JavaScript的'window.location =「http://www.yoururl.com」;' –

回答

0

您的瀏覽器打電話給服務器。服務器響應標題(「我將發送文件」)併發送內容。瀏覽器讀取標題,而不是顯示新的頁面,它提供您保存文件。所有進一步的行動都被忽略

如果你想要文件下載和重定向,你必須發送下載請求到另一個容器(新選項卡,新窗口,iframe),並用JavaScript重定向主窗口。