EZwebのオブジェクトダウンロード用Range Request処理
よく入れ忘れるのでメモっとく。
EZwebは、objectでファイルをダウンロードするときに、Range Requestをしようとするので、プログラムでDL処理するときになんとかしてあげないといけない。
なんかサーバ側の設定で自動でなんとかしてくれるらしいんだけどね。
$fp = fopen("/foo/bar/", "r"); while (!feof($fp)) { $contents_data .= fread($fp,1024); } fclose($fp); // Rangeの処理 if (array_key_exists("HTTP_RANGE", $_SERVER)) { list($dummy, $start, $end) = preg_split("/[=\-]/", $_SERVER["HTTP_RANGE"]); $total_size = strlen($contents_data); $contents_data = substr($contents_data, $start, ($end + 1 - $start)); // 呼ばれたレンジの部分だけ切り取る header("HTTP/1.1 206 Partial Content"); header("Content-Range: bytes " . $start . "-" . $end . "/" . $total_size); } echo $contents_data;
このへん結構面倒なので、着うたとかのオブジェクトダウンロードしかできないファイルはともかく、普通の着メロファイルとかはHDML書いてCRCダウンロードのほうが楽だね。