PHP大ファイルダウンロード解決


添付ファイルには2つのダウンロードクラスがあり、直接持ってきて使えます.いずれもブレークポイントの継続、速度制限をサポートしていますが、linuxでは2 G以上のファイルをダウンロードすることはできません(fopenを使用していますが、ファイルが2 Gを超えているため、ファイルハンドルに戻ることはできません)、windowsで2 G以上のダウンロードをテストします.
phpダウンロードクラスzip(クラスにBC高精密関数ライブラリのサポートが必要なクラスがあり、linux上のyum-y install php-bcmath)
 
2 Gを超えるソリューション:
2 Gファイルをサーバディレクトリの下に直接配置しurlを介してファイルダウンロードに直接アクセスする方法.これ...いずれにしても問題は解決した
もう1つのapacheによるライブラリmod_の拡張sendfileでダウンロード
コードクリップは次のとおりです.
 
 
$file = "XXX.zip";
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header("X-Sendfile: $file");

 
キーコードはheader("X-Sendfile:$file");
 
 
以下にxsendfileモジュールのインストールを言って、ネット上ですでにあって、私は少し整理します
 
1.mod_を取得するxsendfileファイル(
https://tn123.org/mod_xsendfile/ );
2.apxsをインストールし、httpd-develをインストールすればよい
    yum install httpd-devel
3.xsendfileモジュールapxs-cia mod_をインストールするxsendfile.c
4.httpd.confで構成を追加、/tmpをファイル格納ディレクトリに変更
 XSendFilePath /tmp
   
5.ディレクトリファイルに追加する.htaccess、ファイル内容は
<Files XXXXX.php>
XSendFile on 
</Files>