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

Y.Matsumoto rokubou @ msoft.co.jp
2005年 1月 27日 (木) 18:31:50 JST


まつもと@入谷です。

> 現在、EZWEB向けの携帯WEBサイト構築を行っているのですが、
> 3G2ファイルのダウンロードを行う際に、OBJECTタグで指定する
> ファイルを直接ファイル指定するのではなく、PHPファイルを経由
> してバイナリで吐き出す仕組みを構築しているのですが、ダウンロードを
> 行った際に、携帯にデータのダウンロードが行えません。

3G2ファイルのダウンロードは、機種によって異なるらしく、
一部の機種で、HTTP1.1の分割取得を行っています。

このあたりは携帯からサーバーへ送られてきている、リクエストヘッダを
追いかけると、わかると思います。
# たしか、リクエストヘッダ中で Range(?) が指定されていたような…

記憶が曖昧ですが、以下のような方法で解決できるかと。

1.リクエストヘッダを取得
2.ヘッダ中のRangeのファイルの範囲(0-128、128-256のような形式)を
  解析して取得
3.ファイルの範囲を、実体ファイルから切り出す
4.レスポンスヘッダ、HTTP1.1 206(詳しいヘッダは調べてください)を送信
5.ファイルの実体を送信


同じ理由で実装できなかった人から依頼されて調べた時に、
教えた解決方法です。
一応、この方法で解決はしたようですが、どう実装したかはわかりません。

詳しいことは、RFC2068 HTTP1.1に記述されています。
 http://www.mars.dti.ne.jp/~torao/rfc/rfc2068-ja.html#10.2.7
 10.2.7 206 Partial Content

とりあえず、まずはサーバーへ送信されているリクエストヘッダを
確認することをお勧めします。

-- 
Y.Matsumoto <rokubou @ msoft.co.jp>



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