[PHP-users 24283] Re: 携帯用3G2ファイルダウンロードについて

原田 harada @ cosmoshark.net
2005年 1月 27日 (木) 18:57:22 JST


原田と申します。

Hisashi Takahashi wrote:
> 行った際に、携帯にデータのダウンロードが行えません。

EZWEBで3G2等をダウンロードするときはクライアントからは分割ダウンロードの
リクエストが来たはずです。
つまり、$_SERVER['HTTP_RANGE']がセットされていれば

 $range = $_SERVER["HTTP_RANGE"];
 if (preg_match("/^bytes=(\d+)\-(\d+)$/", $range, $arr)) {
   $offset = $arr[1];
   $end = $arr[2];
   $len = $end - $offset + 1;
 }
のようにしてオフセット、エンド、バイト数を取得し、
 header("HTTP/1.1 206 Partial Content");
 header("ETag: $etag");
 header("Accept-Ranges: bytes");
 header(sprintf("Content-Range: bytes %d-%d/%d",$offset, $end, $fsize));
 header("Last-Modified: $last_update");
 header(sprintf("Content-Length: %d", $len));
 header("Content-Type: video/3gpp2");

としてヘッダを送信後に実際の動画データの$offsetバイト目から$lenバイト分
送るというやり方で出来たと思います。


PHP-users メーリングリストの案内