0

ユーザーがファイルをダウンロードできる機能を作成しようとしています。ボタンをクリックしてファイルをダウンロードすると、この関数が呼び出され、「ヘッダー情報を変更できません - ヘッダーは既に送信されました」というエラーが表示されます。

私が知っていることから、「ヘッダーは既に送信されました...」エラーは空白が原因ですが、何も見つからないようです。私が考慮していないことがありますか?これは、それが配置されているページ上の唯一の機能ではありません。ページを特別な方法でロードする必要がありますか?

function serveFile($fileID){
    $sql = mysql_query("select filename from files where id = '$fileID'");
    $file = mysql_fetch_array($sql);

    header('Content-type: text/plain');

    header('Content-Disposition: attachment; filename="'.$file['filename'].'" ');

    readfile('/user_files/'.$fileID.' ');
}

更新 - ヒントをありがとう。関数呼び出しをページの上部に移動しました。

4

1 に答える 1

2

HTML ファイルに空白があるかどうかを確認します。

この問題のヘッダーを吐き出す前に必要なのは、1 つのスペースだけです。

詳細については、これを参照してください: PHP で "Headers already sent" エラーを修正する方法

于 2012-09-18T16:35:35.227 に答える