[[PHPめも]]

phpからファイルをダウンロードさせると、headerのContent-Lengthが何故か0になったり、ダウンロードしたファイルサイズが0byteだったりと何かとハマります。

以下の様に書くとうまくいきました。

 set_time_limit(0);
 header('Content-Description: File Transfer');
 header('Content-Type: application/octet-stream');
 header('Content-Disposition: attachment; filename='.$file);
 header('Content-Transfer-Encoding: binary');
 header('Expires: 0');
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
 header('Content-Length: '.filesize($file));
 ob_clean();
 flush();
 $handle = fopen($file, 'rb');
 while (!feof($handle)) {
     echo fread($handle, 4096);
     ob_flush();
     flush();
 }  
 fclose($handle);


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS