2016-11-04 1 views
-3

私はこのコードを使用して、サーバーからファイルをダウンロード/読み込みます。PHPで大きなファイルをダウンロードするには

header("Expires: 0"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Cache-Control: no-store, no-cache, must-revalidate"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache"); 
    header("Content-type: application/file"); 
    header('Content-length: '.filesize($file_to_download)); 
    header('Content-disposition: attachment; filename='.basename($file_to_download)); 
readfile($file_to_download); 
    exit; 

それは、ファイルをダウンロードして正常に動作していますが、ファイルが大きい場合には、「ファイルが見つかりません、問題のファイルの読み込み」エラーを示しています。大きなファイルをダウンロードするためにこのコードで変更できるものを教えてください。

答えて

0

は次のように試してみてください:ページ上の

$chunkSize = 1024 * 1024; 
$fd = fopen($file_to_download, 'rb'); 

while (!feof($fd)) { 
    $buffer = fread($fd, $chunkSize); 
    echo $buffer; 
    ob_flush(); 
    flush(); 
} 

fclose($fd); 
+0

そのショーの内容は、私はそれで私たちのコード –

+0

が、1つの以上の問題面上のとき1つのダウンロード開始などのダウンロードボックスを表示します。私たちは2番目のファイルをダウンロードしようとしていません。オープンショーページの処理 –

+0

これは動作しますが、私は似たようなコードを持っていますが、freadはwhileの状態で、ob_flushを持っていませんでした。 – jcubic

関連する問題