現在、アプリの何が問題なのかを理解するのに苦労しています。
解決策を見つけることができなかったので (詳細はこちら: Codeigniter ダウンロード ヘルパーが .7z および .rar ファイルを破損しています。それとも別の解決策がありますか? )、別のアプローチを取ることにしました。
したがって、問題は、FTP 経由でダウンロードしたときに破損していない場合でも、HTML 要求を介してダウンロードしたファイルが破損する原因です (私がそう言った場合)。そしてフォローアップは、特定の種類の拡張機能が破損する原因です。zip ファイルは問題なくダウンロードできますが、7z および rar ファイルは破損します。
これは、codeiniter のダウンロード ヘルパーが使用するヘッダー リストです。
header('Content-Type: "'.$mime.'"');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".strlen($data));
ヘルパーは file_get_contents() を使用して content-length を決定し、送信します。filesize() を使用して readfile() 経由でファイルを送信しようとしましたが、結果は同じでした。
また、包括的なアプリケーション/オクテット ストリームから、タイプ (アプリケーション/x-7z-compressed など) に応じた特定のものまで、さまざまな MIME を試しましたが、ほとんど効果がありませんでした。
そのため、現時点では、一部の拡張機能が機能し、他の拡張機能が機能しない原因がわかりません。
どんな提案でも大歓迎です。
これを変更するために使用できるphp、apache、または微調整のプロパティはありますか?
編集:
何らかの理由でファイルを開くと、ダウンロードの ID を表す番号が追加されていることに気付きました。どのようにしてダウンロードしたのか、停止する方法がわかりませんが、これで正しい軌道に乗ることができました。どうもありがとう、私は進歩するにつれてこれを更新します。
また、php がファイルの上に何かを追加するのを防ぐにはどうすればよいですか?
編集:
それを見つけた!
それは私には見えなかったあいまいなエコーでした。私はとても疲れていました。しかし、それがなくなった今、すべてがうまく機能しています。私は何が間違っていたのかを知るために何時間も費やしてきました。私は自分自身に腹を立てていますが、今はそれが終わってうれしいです. 問題を見つけるのを手伝ってくれてありがとう:)