私は開発中のWebアプリケーションで奇妙な問題に直面しています。別の2つのPHPスクリプトから同じファイルをダウンロードしようとすると、 MS Wordによってcorrupt
として検出されました。MS Word異なるPHPスクリプトからダウンロードするとファイルが破損する
どちらのスクリプトはまったく同じコード、一方が他方のリテラルコピーであるが含まれています。
ob_start();
header('Content-Description: File Transfer');
header("Content-Type: $contentType");
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Length: ' . filesize($file));
ob_clean();
readfile($file);
exit;
Apache 2.4とPHP7を実行しているWindowsサーバー2012を使用しています。私は生産と開発のために2つの異なるフォルダ/app/
と/appBeta/
をそれぞれ使用します。
プロダクションフォルダ内のダウンロードスクリプトからファイルをダウンロードするように要求すると、破損したファイルが取得されます。
私は開発フォルダ内のダウンロードスクリプトから同じファイルを要求しても問題ありません。ファイルが実動フォルダの内側にあることに注意してください。実動と開発の両方がドキュメントルートにあります。ここで
は、両方のダウンロードのリクエスト/レスポンスヘッダーは、次のとおりです。
私が気づいたもう一つは、間の相違であります"Origin"データはファイルに含まれています。私がでてる
生産(壊れた)
開発(破損していない)
(右[ファイル] - > [プロパティ] - > [詳細]をクリックします)これを引き起こしている可能性があるための損失、私はApacheや権限で何かを疑う...誰も何が起こっているか考えているここに?
EDIT:このファイルは、本番フォルダー内の既存の静的ファイルです。生成されたファイルではありません。
ファイルが実際に運用サーバー上に存在していますか? – cmorrissey
はい、申し訳ありませんが質問を更新しました。 –