2016-08-22 5 views
0

ヘッダー( "location:index.php");私のために働いていません。PHPを使用してサーバーからファイルをダウンロードした直後に任意のURLにリダイレクト

$ fileはファイルのパスです。

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で別の場所にリダイレクトする必要があります。

関連する問題