私は現在、リンクにアクセスしてモバイルデバイスからメディアコンテンツ(ビデオ、オーディオ、写真など)をダウンロードできるPHPスクリプトを作成しています。 (すなわち、http://www.my-web-site.com/download.php?id=7ejs8ap) 私のスクリプトは、最近の携帯電話(Samsung Galaxy S、iPhone 4S、その他のもの)でテストしていたときに非常にうまくいきましたが、古いモバイルSamsung C3050でエラーが発生しました。私がダウンロードしたかったメディアは、通常は簡単にダウンロードできるオーディオmp3ファイルでした。モバイル用のHTTPヘッダ "Content-Type:application/force-download"のユーティリティ?
エラーは、「不明なコンテンツの種類」と表示されます。 私の唯一のHTTPヘッダーContent-Typeは "application/force-download"だったので、これをコメントしてやり直してみます。その後、それは動作します。 しかし、現在、私は現在、このContent-Typeが何を意味しているのか、それが他人のモバイルにとって必須であるのかを尋ねています。 iPhone 4でContent-Typeなしでテストしたところ、すべてのモバイルでこの互換性がわかりません。
Content-Typeがどのように動作するのか、誰かが私に説明してくれるのですか?これは標準MIMEではない、あるいはこれがオプションであることを確認するのに役立つその他のものです。または私がダウンロードしているデバイス?
ありがとうございました。ここで
は私のPHPヘッダが送信されます。
<?php
//Assume that $filename and $filePath are correclty set.
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$filename.'"');
// header('Content-Type: application/force-download'); Non-standard MIME-Type, incompatible with Samsung C3050 for example. Let it commented
readfile($filePath);
?>
は編集:私はちょうどソニーのXperiaと試みたが、ダウンロードが成功しませんでした:私は私のファイルの「HTMLエンコードされた」バイトIを参照してくださいダウンロードしたい application/octet-streamまたはapplication/force-downloadが動作しない場合、どのようなコンテンツタイプを使用する必要があるのかをどのように知ることができますか?
ご説明いただきありがとうございます。後でアプリケーション/オクテットストリームを試してみましょう。それがうまくいかない場合は、ファイル名からMIMEタイプを検出する関数を使用します。私はこれが特別なiPhone着メロのための* .m4rまたは* .dmのようないくつかの "特別な"ファイルのためにうまくいくことを願っています... もしそうでなければ、私は自分自身の不要なスイッチ/ケースを行います。 '( – niconoe
@nioconoe PHPの場合はhttp://www.php.net/manual/en/function.finfo-file.phpです。また、ファイルのMIMEタイプを知る最も簡単な方法はfileinfoライブラリです。コマンドラインから--mime ' –
何コンテンツ自体は、HTMLページです(例えば、HTMLレポート)の場合 – D34dman