PHPで質問です。


Android携帯では、音楽データのダウンロードを行うには
下記を使用するしかないのでしょうか?

http://ameblo.jp/exp-sei/entry-10766745504.html

下記のヘッダを送るだけではダメでした。
header("Content-disposition: attachment; filename=" . $_GET['address'] . '.mp3');
header("Content-type: application/octet-stream; name=" . $_GET['address'] . '.mp3');

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/03/19 01:36:52
  • 終了:2011/03/26 01:40:03

回答(2件)

id:ksoft_sort No.1

ksoft_sort回答回数5ベストアンサー獲得回数02011/03/19 19:58:57

ポイント35pt

header("Content-disposition: attachment; filename=" . $_GET['address'] . '.mp3');

filenameは"でくくらないとうまくできないことがあるそうです。


header("Content-type: application/octet-stream; name=" . $_GET['address'] . '.mp3');

通常 name=-----.mp3 はつけません。

ということでちょっと書いてみました。

**************

header('Content-Disposition: attachment; filename="'.$_GET['address'].'"');

header('Content-Type: application/octet-stream');

header('Content-Transfer-Encoding: binary');

header('Content-Length: '.filesize($_GET['address']));

ファイル内容出力(ファイルだったらreadfile(ファイル名);とか。)

**************

いちおうファイル名は$_GET['address']にしましたが、これは非常に危険です。GETで取得したファイル名ですから、ちょっと変えられたら、プログラム本体などをダウンロードされてしまう危険があります。ですから、ファイルコードみたいなものを作って、それをGETで取得し、そのコードからファイル名を内部で作成して、ダウンロードさせたほうが安全です。

わかっているとは思いますが、ファイル名には/などは使えません。Android、Linux、Windows、みんなそうです。

id:makocan

同一ソースを使用したのですが、IS03にて、「この携帯ではこのコンテンツはサポートされていません。」と出てしまいます。

ちなみにただのJpgファイルです。

2011/03/21 01:22:38
id:ksoft_sort No.2

ksoft_sort回答回数5ベストアンサー獲得回数02011/03/21 12:56:38

ポイント35pt

二回目です。

パソコンではダウンロードできますか?もしかしたら拡張子などで判断しているかもしれません。JPEGならjpgにしていますか?

ちょっと手元にIS03はないので、確認できないです。


#なんかあなたの言っていることが矛盾してますが。。。

Android携帯では、音楽データのダウンロードを行うには

ちなみにただのJpgファイルです。

id:makocan

申し訳ありません。jpgではなく、mp3でした。

パソコンではDL可能です。

2011/03/21 19:43:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません