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

Hisashi Takahashi water-ru @ ee.em-net.jp
2005年 1月 27日 (木) 17:47:24 JST


はじめて投稿させていただきます、WATAと申します。

はじめに、携帯関連の質問になりますので、ご質問する
内容が適切でない場合はご了承いただけますようお願いいたします。

以下、質問内容になります。
==================================================================

まず、開発環境は以下になります
・Linux ES 3.0
・Apache 1.3
・PHP 5.1
・MySQL 4.1

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

PHPファイルを経由する理由目的としましては、以下になります。
・実データを公開WEB上に置かない
・ログをDBに落とし込む

実際のスクリプトは下記になります。
※HTMLタグ、INCLUDE記述等は、割愛させていただきます。

--ダウンロードページ----------------------
<object data='download.php?cid=1' type='video/3gpp2' copyright='no' standby='ダウンロード'>
<param name='disposition' value='devmpzz' valuetype='data' />
<param name='title' value='SAMPLE' valuetype='data' />
<param name='size' value='10000' valuetype='data' />
</object>";

--ダウンロード用--------------------------
//引数:CID=データ判別用

//GET値取得
$CId = $_REQUEST["cid"];

//ログデータ作成
MakeLogData($CId);

//データパス取得
$DataPath = GetDataPath($CId);

//ファイル抽出
if( file_exists($DataPath) ){
    $Fp = fopen($DataPath,"rb");
    $Buf = fread ($fp, filesize($DataPath));
    fclose($fp);
    header("Content-type: video/3gpp2");
    header("Content-Length: ".filesize($DataPath));
    echo $Buf;
}

以上

別途確認した項目は以下になります。

・ファイルの存在確認は、デバッグでfile_existsにより存在する
事を確認しております。
・ファイル抽出の個所を”fpassthru”,"print"に置き換えた場合でも
同現象でした。
・download.php?cid=1を直接呼び出したところ(headerを出力せず)
スクリプトエラーは発生しておりませんでした。

また、以下の条件で確認したところ正常にダウンロードを行えました。

・音声ファイルのMMFをダウンロード(mime,disposition設定は変更)
・"download.php?cid=1"を直説ファイルを指定する

携帯関連のML等で質問すべき内容かもしれませんが、ご経験のある方
アドバイスをいただける方がおられましたらよろしくお願いいたします。

*--------------------------------*
* MAILTO:water-ru @ ee.em-net.jp
*--------------------------------*



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