プロが教える店舗&オフィスのセキュリティ対策術

文字数制限があるので、簡潔に行きます。
(いろいろと書いていたら文字数が多すぎました)

[ロジック]
$size = filesize("melody.mmf");
$FP = fopen("melody.mmf","r");
header("content-type: application/x-smaf .mmf");
header("Content-disposition: attachment; filename=melody.mmf");
$read = fread($FP,$size);
print $read;
fclose($FP);
exit;

このような形で直接ファイルを展開しています。
3G以外の機種ですと、音楽ファイルに問題が無ければこれでダウンロードできていたのですが、特定の3G機種ですと、ファイル展開したものではなく、このロジックが書かれたプログラムがダウンロードされるようです。
(例えばdownload.phpだったら、このファイルがダウンロードされる)

おそらくは、端末側でSMAFとして認識されていないのだと思うのですが、何故そのような現象が起こるのかはわかりません。
(Headerでこのプログラムに飛んでくるのではなく、アンカーでリンクします)

ちなみに、.htaccessファイルにて
AddType application/x-smaf .mmf
の設定はしてあります。

実際にいくつかのパターンでテストを行ってみたのですが上手く行きませんでした。

是非お知恵を貸してください。

A 回答 (1件)

自信はないですが



http://php.s3.to/man/function.readfile.html
↑の関数を使って試してなければ試してみてください。


$path = 'ファイルパス';
header("content-type: application/x-smaf .mmf");
header("Content-disposition: attachment; filename=melody.mmf");
readfile($path);
exit;

みたいなかんじで

参考URL:http://php.s3.to/man/function.readfile.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記ロジックでテストをしてみましたがダメでした。
やっぱりプログラムファイルがダウンロードされてしまいます。

アクセスされるファイルでファイルタイプを認識するのかと思いましたが、だからといって拡張子をmmfに変えてもやっぱりプログラムがダウンロードされてしまいます。
ファイルの中身も認識しているようなのですが、かといって直接曲ファイルリンクでもダウンロードできないし・・・

#もしかしてCRCチェックとかしている?!

お礼日時:2005/09/13 11:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!