PHP ダウンロード ファイルの内容が文字化けする場合の解決策: 1. 「ob_clean()」関数を使用して出力バッファの内容をクリアします; 2. 「flush()」関数を使用して PHP プログラムのバッファを更新します。
#この記事の動作環境: Windows7 システム、PHP7.1、Dell G3 コンピューター。
php ファイルのダウンロード時にファイルの内容が文字化けしたり破損したりする問題の解決策
PHP プログラムを実行するときは、PHP を使用してファイルをダウンロードする必要があります
その後、コードをコピーして変更するだけです。
エフェクトも多数登場
ダウンロードをクリックして、ファイルのダウンロードが完了したと思ったのですが、画像を開いたところ、ファイルが破損しているというメッセージが表示されたので、ファイルのサイズを確認しました。 1KBくらいは多すぎる気がします。
PS を使用して開きます。破損しているというメッセージが表示されますが、画像は表示されます。
じゃあ、余分な1kbの問題だと思います。
次に、txt をアップロードしてダウンロードしました。
案の定、ファイルの前後にいくつかの余分な文字があることがわかりました。
その後、どうやって削除するかを考え、Baidu、Google、フォーラムなどに質問をしました。
1 時間以上検索して、ようやく解決策を見つけました。 [推奨: "PHP ビデオ チュートリアル "]
コードは次のとおりです
public function download() { $upload=M('upload'); $data=$upload->find($_GET['id']); if(empty($data)){ header('HTTP/1.0 404 Not Found'); header('Location: .'); }else{ $path='./public/Uploads/'.$data['savename']; header("Content-Type:".$data['type']); header('Content-Disposition: attachment; filename="'.$data['name'].'"'); header('Content-Length:'.$data['size']); ob_clean(); flush(); readfile($path); } }
注意:
ob_clean();
flush();これが重要です。この2つの機能を使用したところ、正常に画像が開き、文字化けもせずに完了しました。
以上がPHPダウンロードファイルの内容が文字化けしている場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。