remove
powerd by nog twitter
★4.CGIを使う方法★(2005.04.06更新)

[TOPページ] [着メロ] [清春って?] [清春の音楽] [好きな音楽] [掲示板] [メンバー募集] [リンク] [心霊系掲示板]
[着メロTOP][1.MIDIデータ] [2.MIDI変換] [3.64音着メロ] [4.CGI] [5.xhtml] [サンプル]


着メロのダウンロードページ作りの第一弾、CGIを使う方法を簡単に書きます。
(これを使って自作の着メロをお友達にダウンロードしてもらいましょう。)
疑問,質問,間違いのご指摘は 着メロダウンロードページ作成掲示板 or メール にお願いします。

ダウンロードCGIとは?
EZwebでホームページ作成をする際使用されてる言語は
HDMLというもので、
インターネットで普通使用されている『HTML』
とは異なったものです。
単に、
<a href="ファイルのURL">ファイル</a>
だけではファイルをダウンロードさせることが出来ません。

MIMEの登録が必要だったり、
.htaccessを置いたり
着メロファイルにCRCチェックサムを付けないといけなかったり、
何かとやらなければなりません。

詳しくは
[ EZwebホームページを作ろう! ]でお勉強しましょう。

っでダウンロードはどうするか?
EZweb用のブラウザを開発している
オープンウェーブシステムズの提供するサイト構築用のツール
に同梱されてましたCGIを優秀な先人の皆様が解析し、公開して下さいました。
感謝感謝。
※もうすでにリンク先のサイトがないので、役に立たないとは思いますが。。。新しいページは知りません。※

色々使いやすいCGIを公開してくださってるのですが
一部ご紹介させていただきます。
(またまた勝手にこんなこと書いてしまいました。)

かたやま某さん作
[ EZget.cgi ](リンク先なし)

かいがさん作
[ ezGet用単純downloadスクリプト ]

NaViさん作
[ リスト出力 cgi for ez.cgi ](リンク先なし)

要は、HDMLでは、CGIを使ってダウンロードしなければなりません。
そういうことなんです。。。


かたやま某さん作『EZget.cgi』
[ ココ ]
を例に説明させて頂きます。
※リンク先がないので、この説明だけではダウンロードCGIは完成しません(本体を入手出来ない)※
※そのうちCGIを自作しようかとも思いますが、今はxhtmlベースのCGIの記事を参考にして下さい。※
※しかし本体を持っている人もいるかも?なので、とりあえず書き進んで行こうかと思います。※

Version 1.2alphaとVersion 1.1がありますが、
Version 1.2alphaを説明します。

『EZget.cgi』は、『.htaccess』を置くこともも『CRCチェックサム』の付加も
必要ない便利なCGIです。
CGIを使えるサーバなら手軽に設置出来ます。

ezget12a.txtをダウンロードしましょう。
ダウンロードというよりブラウザでテキストを
コピーして保存する。名前は"ezget.cgi"としましょう。

ezget.cgiをテキストエディタで開いて赤字を編集しましょう。
#!/usr/bin/perl

################################
# ezget.cgi Version 1.2alpha #
################################

# サブディレクトリの場所を変えるにはここをいぢる
$datadir='data';

# カテゴリの表示を変えるにはここをいぢる
%filetype=(
[TAB] 'dev8wlw',[TAB] 'PNG画像',
[TAB] 'dev13trq',[TAB] 'ボイス',
[TAB] 'devpmd',[TAB] 'pmd着メロ'
);

# 最初の画面を変えるにはここをいぢる
$indexhdml='<HDML VERSION=3.0 TTL=3600 MARKABLE=TRUE>
<DISPLAY TITLE=ほげ下載>
<ACTION TYPE=ACCEPT TASK=GO DEST=?page=0 LABEL=進む>
ここは、CGIを使用したダウンロードコーナーです。ご自由にお持ち帰り下さい。
</DISPLAY>
</HDML>';

# カテゴリ選択画面を変えるにはここをいぢる
$cathdml='<HDML VERSION=3.0 TTL=3600 MARKABLE=FALSE>
<CHOICE>
カテゴリを選択して下さい。
%s</CHOICE>
</HDML>';
$catitem='<CE LABEL=選択 TASK=GO DEST=?cat=%s&page=0>%s';
$catnext='<CE LABEL=進む TASK=GO DEST=?page=%d>進む';

# ファイル選択画面を変えるにはここをいぢる
$filehdml='<HDML VERSION=3.0 TTL=3600 MARKABLE=FALSE>
<CHOICE>
ファイルを選択して下さい。
%s</CHOICE>
</HDML>';
$fileitem='<CE LABEL=選択 TASK=GO DEST=?cat=%s&file=%s>%s';
$filenext='<CE LABEL=進む TASK=GO DEST=?page=%d&cat=%s>進む';

# 確認画面を変えるにはここをいぢる
$queryhdml='<HDML VERSION=3.0 TTL=3600 MARKABLE=FALSE>
<DISPLAY>
<ACTION TYPE=ACCEPT TASK=GOSUB DEST=device:data/dnld?url=%s&name=%s&size=%s&disposition=%s&title=%s LABEL=開始>
%s
%s「%s」のダウンロードを開始しますか?
</DISPLAY>
</HDML>';
$querysample='<CENTER><IMG SRC=%s ALT=ロード中><BR>';

# Content-type
$c_type="Content-type: text/x-hdml;charset=Shift_JIS\r\n\r\n";

##########################################
# ここから下はいぢらなくていい筈 #
##########################################


では編集個所を順に説明します。
#!/usr/bin/perl
お使いのサーバのperlのパスに書き換えましょう。
CGIの設置方法などのFAQ,HELPにのってると思います。

$datadir='data';
データフィルを格納するフォルダを指定します。
実際はこの直下に、着メロを置くのではありません。
次の説明で詳しく述べます。

[TAB]'dev8wlw',[TAB] 'PNG画像',
[TAB]'dev13trq',[TAB] 'ボイス',
[TAB]'devpmd',[TAB] 'pmd着メロ'
※[TAB]は"[TAB]"という文字列なく、TABを入力してください
この部分が最も重要になります。
dev8wlw,dev13trq,devpmdは、dispositionというもので、
devpmdは、pmdをダウンロードする時に必要なものです。
この値でダウンロードするファイルが、何の形式のどういうファイルか判断します。
(最近のマルチメディアファイルのdispositionは参考としてこのページの末尾に、配置しておきます。)

またここの記述は、ezget.cgiを動かす上での、ディレクトリ構成にも関係します。
例えば、サーバの~/cgi-bin/にCGIを置かなければならないとします。
そこで
~/cgi-bin/ezget/ezget.cgi
にezget.cgiを置くとします。
ということで、上述のdataフォルダのパスは、
~/cgi-bin/ezget/data/
になります。
上記の記述と連動して、以下のディレクトリを作成しなければなりません。
~/cgi-bin/ezget/data/dev8wlw/
~/cgi-bin/ezget/data/dev13trq/
~/cgi-bin/ezget/data/devpmd/

ここで、64音着メロをダウンロードさせるのが目的の場合
上記3行は必要なく、3つのフォルダも作成しなくていいです。
CGIの記述は以下のみに変更
[TAB]'devm53z',[TAB] '64音着メロ(mmf)'
※[TAB]は"[TAB]"という文字列なく、TABを入力してください

以下のディレクトリを作成
~/cgi-bin/ezget/data/devm53z/

着メロを実際に配置する場所は、
~/cgi-bin/ezget/data/devm53z/test.mmf
のように、dispositionのディレクトリの下です。
CGIはこの下にあるファイルを全てリストアップする仕様です。
※必要に応じて、CGIとディレクトリのdispositionを追加削除をしましょう。

<DISPLAY TITLE=ほげ下載>
ホームページのタイトルです。

ここは、CGIを使用したダウンロードコーナーです。ご自由にお持ち帰り下さい。
カテゴリを選択して下さい。
ファイルを選択して下さい。
のダウンロードを開始しますか?
この日本語文は、ご自由な言葉に変更しましょう。
他にも『進む』とか『選択』という言葉も変更してもかまいません。

# ここから下はいぢらなくていい筈 #
読んだ通りです。
いじらないようにしましょう。

これでezget.cgiの編集はおしまいです。。
後はサーバにアップロードするのみです。

サーバへのアップロード
作業としては、以下を行います。
1.ディレクトリの作成
2.ファイルの転送。
3.ファイル属性の変更。

Sota(曽田)さん作成の『FFFTP』なんかは便利です。
[ http://www2.biglobe.ne.jp/~sota/ ]
にあります。

1.ディレクトリの作成
ディレクトリをPCで作成してFTP送信するのが簡単でしょう。

2.ファイルの転送。
ファイルの転送は少し決まりがあります。
『ezget.cgi』は、アスキー転送モードで、漢字コードはShift_JISで行ってください
(サーバの漢字コードには関係なくShift_JISです。)
『着メロ(mmf)』は、バイナリ転送モードで行ってください

3.ファイル属性の変更。
『ezget.cgi』の属性を変更します。
属性755(rwxr-xr-x)
オーナー グループ その他
呼出○ 呼出○ 呼出○
書込○ 書込× 書込×
実行○ 実行○ 実行○

以上で設定が終わりです。
携帯電話でURL(http://xxxxx/xxx/cgi-bin/ezget/ezget.cgi)につないで見ましょう。
ダウンロードページが見えてダウンロード出来るはずです。

マルチメディアファイルの形式とdisposition
これはダウンロードで必要になる情報なのでおさえときましょう。

とりあえずは知っているものだけ書いときます。。
形式 種類 disposition MIME type 備考
mmf(MA5) 64音 devm53z application/x-smaf SMAFの64音着メロです。
mmf(MA3) 40音 devm39z SMAFの40音着メロです。
mmf(MA2) 16音 devm2trm/devmfan SMAFの16音着メロです。
ADPCM音声
カラオケ
mmf(MA1) 4音 devmmf/dev4anm SMAFの4音着メロです。
CMXpmd
(16音)
16和音
dev16trp/devcman application/x-pmd 4XXシリーズ以降の16音着メロです。
カラオケ dev16krt
発信アニメ dev8tra
スクリーンセーバー dev8sca
pmd
(3〜4音)
3〜4音 devpmd/dev3anp 3〜4音着メロです。
qcp 音声 dev13anq audio/vnd.qcelp クアルコムQcelpフォーマット
3g2 着うた(音声のみ) devmpzz audio/3gpp2 映像のみでも音声のみでもdispositionは同じです。
EZムービー(動画+音声) video/3gpp2
amc EZムービー
MPEG-4+QCELP
devdl1q application/x-mpeg ショートストリーミングの場合は、devdl2q
EZムービー
MPEG-4(映像のみ)
devdk1n ショートストリーミングの場合は、devdk2n
EZムービー
QCELP(音声のみ)
devdl1bq ショートストリーミングの場合は、devdl2bq
kjx EZアプリ(Phase1) devkdjx application/x-kjx JAVAアプリケーション
EZアプリ(Phase2/Phase2.5) devkdj2
swf 着Flash devfl8r Application/x-shockwave-flash アニメコンテンツ用(W21CAは未対応)
Flash devfl7z その他一般Flashコンテンツ用
W21CA FLASH devfl7r メニュー登録以外
W21CA FLASH ICON ca31fl7k アイコンメニュー登録専用
talby FLASH ICON stfl01 アイコンメニュー登録専用
gif GIF画像 devgi0z image/gif 壁紙等
アニメーションGIF画像 devga2z スクリーンセーバ−等
jpg JPEG画像 devjaww image/jpeg 壁紙等
png PNG画像 dev8aww image/png 壁紙等
devfr0i 写真フレーム
devst0j 写真スタンプ
bmp 1ビットBMP画像 devabm image/bmp 壁紙等
2ビットBMP画像 dev2abm 壁紙等


[着メロTOP][1.MIDIデータ] [2.MIDI変換] [3.64音着メロ] [4.CGI] [5.xhtml] [サンプル]
[TOPページ] [着メロ] [清春って?] [清春の音楽] [好きな音楽] [掲示板] [メンバー募集] [リンク] [心霊系掲示板]
ご意見ご感想は 着メロダウンロードページ作成掲示板 or メール でお願いします。