
Perlで着メロをダウンロードさせカウントするスクリプトを書いたのですが、
J-PHONEでmmfファイルをダウンロードすると「REP310 J-PHONEではページを表示できません」というエラーが出てDLできません。
2000サーバーでIISのMIMEは既に登録済みです。
また、DoCoMoのmldは問題なくDLできカウントできます。
スクリプトはHTTP_USER_AGENTとホストで判定し、
J-PHONEの場合はHTTP_X_JPHONE_SMAFで和音数を調べて、
カウントしてからLocationでファイルの絶対パスへ飛ばしてます。
ちなみに、ケータイに直でパスを入れるとダウンロードできます。
No.8ベストアンサー
- 回答日時:
再度確認です。
-- ソース --
(カウント処理)
open(IN,"hoge.mmf");
binmode IN;
$src = join("",<IN>);
close(IN);
binmode STDOUT;
print "Content-Type: application/x-smaf\n\n";
print $src;
exit;
__END__
で、
拡張子に .mmf を付けてアクセスして NG でしょうか?
エラーコードも同じですか?
やりました。できました。
何が悪かったのかよくわかんなかったんですが、
とりあえず、間に合ったのでこれから調べます。
ご回答くださいました皆さん有難うございました。
No.5
- 回答日時:
度々申し訳ありません。
最初の質問に IIS と書いてありましたね・・・
HTTPD に MIME を登録しても CGI で出力するヘッダは明示的にしてあげないとダメですよ。
この回答への補足
こちらこそ度々すいません。
そうなんです。IISです。
デーモンにもMIMEを登録して、CGIでヘッダを出力してもやっぱりできないです。
No.4
- 回答日時:
すみません、自己レスです。
> バイナリファイルなので open した時に join でくっつけているのですが。
これ、よく意味が解りませんね。
とりあえずバイナリファイルは改行は改行として扱わないフォーマットですので join("", <IN> ); としてデータを一つの変数内に代入してるだけです。
配列をまんま出力して問題なければそれでいいと思います。
binmode を使ってるという事は Windows なんでしょうか?
試してみよう・・・
No.3
- 回答日時:
mmfファイルのヘッダは
Content-Type: application/x-smaf
だと思うのですが・・・
それと、配列ってまんま出力していいんでしたっけ?
バイナリファイルなので open した時に join でくっつけているのですが。
FreeBSD 4.4-RELEASE と Apache 1.3.27 の環境では問題なく動作してますよ。No.2 のソースで。
この回答への補足
ありがとうございます。
ソースをコピペしてファイルへのパス等変更して吐き出してみたんですけど、
やっぱりREP310のエラーメッセージです。
先程のソースでヘッダを変更してみてもやっぱりDLできませんでした。
No.2
- 回答日時:
そのCGIで直接mmfファイルを出力してはどうでしょう?
(カウント処理)
open(IN,"hoge.mmf");
$src = join('',<IN>);
close(IN);
print "Content-Type: application/x-smaf\n\n";
print $src;
exit;
ダメですか?
この回答への補足
open ML,$J_file;
binmode ML;
my @tmp = <ML>;
close ML;
binmode STDOUT;
print "Content-disposition:attachment; filename=\"$J_file\"\n";
print "Content-type: application/octet-stream\n\n";
print @tmp;
として直接ファイルを吐かせてみたんですがうまくいきません。
回答ありがとうございます。
open ML,$J_file;
binmode ML;
my @tmp = <ML>;
close ML;
binmode STDOUT;
print "Content-disposition:attachment; filename=\"$J_file\"\n";
print "Content-type: application/octet-stream\n\n";
print @tmp;
としてみたんですが、どうにもできないんですよね。
なんなんでしょうか?
No.1
- 回答日時:
J-PHONEはLocationに制限があるようです。
ちょっと探せなかったですが、J-PHONEのサイトに
仕様が載っているかもしれません。
参考URL:http://ponta.kit.to/doc/develop/
この回答への補足
J-PHONEの参考資料(PDFファイル)を読んだのですが、ここにはLocation等ヘッダに関するものやPerlなどプログラム関連の記述はありませんでした。
補足日時:2003/04/25 22:30ご回答有難うございます。
参考サイトを見させて頂きました。
やっぱりLocation周りですか。
このヘッダを流してるのは一度なのですがその辺りももう少し調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複するデータを抽出できる秀...
-
LWPでPOST送信した後に送信先に...
-
Perlでファイルの末尾から指定...
-
sprintfについて
-
Perl<->Oracle間での文字化けに...
-
VBAでCSVファイルを途中行まで...
-
Windowsで複数のファイルを同じ...
-
MATLABのm-fileについて
-
readdir()で得られるファイル・...
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
dos変数の%~dp0は powershellで...
-
MATLAB std::exceptionエラー
-
batファイルでrenameができませ...
-
htaccessで特定のディレクトリ...
-
C言語で特定の行を抽出する方法...
-
FindFirstFileとFindNextFileで...
-
ファイルの削除について
-
ReadLineでの読み出し行を指定する
-
対比較データを表データに変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
エクセルVBAで素数だけを出力す...
-
DOSコマンドで、標準出力を出力...
-
[awk]uniq -cで複数ファイルの...
-
sprintfについて
-
大量メールの任意のヘッダだけ...
-
log2の「正確な」計算方法
-
[Perl]ファイル出力のエンコー...
-
重複するデータを抽出できる秀...
-
Perl<->Oracle間での文字化けに...
-
文字コードの変換(Shift-JISか...
-
テキストファイルから日本語部...
-
htmlから、ファイル、もしくはC...
-
ファイル出力の改行コードをLFに
-
sprintfで10進数を桁数指定で16...
-
Perl 時間同士の差
-
warnやdieの出力先を変更したい
-
Perlでエラーログに日時をつける
-
エディターでは改行なのにメモ...
-
perlでモジュールを使ってクロ...
おすすめ情報