[解決済み] モバイル向けHTTPヘッダー "Content-Type: application/force-download "の有用性とは?
質問
現在、携帯端末からリンクにアクセスしてメディアコンテンツ(動画、音声、写真...)をダウンロードできるPHPスクリプトを作成しています。(例 http://www.my-web-site.com/download.php?id=7ejs8ap ) 最近の携帯電話(Samsung Galaxy S、iPhone 4S、その他)でテストしたときは、私のスクリプトは非常にうまくいったのですが、古い携帯電話のSamsung C3050ではエラーが発生しました。ダウンロードしたいメディアは、いつもなら簡単にダウンロードできる音声mp3ファイルでした。
エラーの内容は、"Unknown content type."のようです。 そこで、HTTPヘッダーのContent-Typeが"application/force-download"だけだったので、これをコメントにして再挑戦するようにしています。すると、うまくいく。 しかし、今、私は現在、このContent-Typeの意味と、他のモバイルのために必須とすることができるかどうかを尋ねています。iPhone 4でContent-Typeなしでテストしたところ、うまくいきましたが、すべてのモバイルでこの互換性があるかどうかはわかりません。
このContent-Typeがどのように機能するのか、なぜこれが標準のMIMEでないのか、あるいは、ファイル、ブラウザ、ダウンロードするデバイスが何であれ、すべてのダウンロードでこのContent-Typeがオプションであることを確認するのに役立つ他のあらゆることについて、誰か説明してくださいませんか。
皆さん、ありがとうございます。
以下は、私が送信した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);
?>
EDIT : ソニーのXperiaで試したところ、ダウンロードは成功しませんでした。ダウンロードしたいファイルの "html-encoded" バイトだけが表示されます。 application/octet-streamやapplication/force-downloadがうまくいかない場合、どのようなcontent-typeを使用しなければならないかを知るにはどうすればよいでしょうか?
解決方法は?
Content-Type: application/force-download
とは、「私、ウェブサーバは、あなた(ブラウザ)に対して、このファイルが何であるかについて嘘をつき、あなたがそれをPDF/Word Document/MP3/その他として扱わず、代わりに謎のファイルをディスクに保存するようユーザに促すつもりです。これは汚いハックで、クライアントが"save to disk"を行わない場合、恐ろしいほど壊れます。
使用するメディアに対して正しい MIME タイプを使用してください (例.
audio/mpeg
mp3の場合)。
を使用します。
Content-Disposition: attachment; etc etc
ヘッダは、デフォルトの動作に従うのではなく、クライアントにダウンロードするよう促したい場合に使用します。
関連
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] HttpClientリクエストのContent-Typeヘッダーはどのように設定するのですか?
-
[解決済み] ファイルのダウンロードにContent-Type: application/octet-streamは必要ですか?
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合
-
[解決済み】HTTPの "Content-Type "ヘッダーのすべての可能な値は何ですか?
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】空の配列要素を削除する
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合