0

これは投稿されていますが、SOなどで見つかった多くのソリューションを試しました(例:http://davidwalsh.name/php-force-download

私は基本的にこれを持っています:

{       
    $filePath = '../public/myfile.png';
    $fileName = basename($filePath);
    $fileSize = filesize($filePath);


    if (!is_file) {
        die("File not found");
    } else {                        
        header("Content-Description: File Transfer");
        header('Content-Type: application/octet-stream');
        header("Content-Disposition: attachment; filename= " . $fileName);
        header("Content-Transfer-Encoding: binary");
        readfile($filePath);
    }
}

ファイルは認識されてダウンロードされますが、.PNGは空で、.DOCは破損しています(Wordからファイルの修正を求められたら、問題ありません)。PDFも試しましたが、問題ありません。

私はあらゆる種類のオプション(Pragma、Cache-Control、Expires、Content-Lengthなど)を配置しますが、ファイルはダウンロードされますが、何らかの方法で破損しています...

私の問題があったことはありますか?IIS7.5を使用していると考えてください

前もって感謝します

4

1 に答える 1

8

ダウンロードしたファイルをNotepad++などのプレーンテキストエディタで開きます。上部にPHPエラー通知があり、何が問題になっているのかがわかります。

エラーはおそらく「セッションはすでに送信されています」です。ob_start();次に、スクリプトの先頭に追加します。

于 2012-06-11T13:12:25.667 に答える