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で質問しましょう!
似たような質問が見つかりました
- その他(スマホアプリ・スマホゲーム) YouTubeの録音(録画にあらず) 1 2022/09/25 14:15
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- Android(アンドロイド) Aloha Browser でダウンロードしたファイルをPCに転送するには? 1 2022/05/23 18:54
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- 音楽配信 Androidで好きな楽曲を着信音にする方法 2 2023/07/23 14:15
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- YouTube Youtubeの、違法ダウンロード関連についての質問 5 2022/05/01 14:54
- その他(パソコン・周辺機器) 動画のダウンロードが突然出来なくなりました。詳しい方いたら助けてください 4 2023/02/17 10:03
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ドメインからIPアドレスあるい...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
至急お願いします。C言語で.img...
-
VBAでCSVファイルを途中行まで...
-
openした後、closeしないでプロ...
-
VBAでCSVファイルの特定行を書...
-
エクセルVBA コードが同じでも...
-
バッチファイルの作り方(CSV→...
-
csvファイルの横方向への改行に...
-
ExcelをCSV書き出す場合のシー...
-
drtファイルはどうしたら開...
-
無料配布の郵便番号自動入力cgi...
-
ファイルからある文字列の個数...
-
close()で例外が投げられる理由
-
Perlで フォルダ内の全て...
-
Perl 特定のフォルダ以外削除
-
JSP URLに表示される拡張子 .jsp
-
csv出力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
Perlでファイルの末尾から指定...
-
重複するデータを抽出できる秀...
-
ファイル出力の改行コードをLFに
-
CGIから外部コマンド実行時の標...
-
timeコマンドの結果をテキスト...
-
log2の「正確な」計算方法
-
sprintfで10進数を桁数指定で16...
-
Perl<->Oracle間での文字化けに...
-
機器のI/OをArduinoでSDに記録...
-
バッチファイルで、記号を含む...
-
テキストファイルから日本語部...
-
Perl中で teeを使っても戻り値...
-
perlでの出力先設定
-
htmlから、ファイル、もしくはC...
-
標準エラーと標準出力をファイ...
おすすめ情報