1

ユーザーにファイルのダウンロードを強制しようとしています。そのための私のスクリプトは次のとおりです。

$file = "file\this.zip";        
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip"); //This is what I need
header("Content-Transfer-Encoding: binary");
readfile($file);

アップロードするファイルは常に .zip ではないため、$file で受信する画像のコンテンツ タイプを知りたいと考えています。これを達成する方法

4

5 に答える 5

5

application/octet-streamブラウザはそれを何らかの方法で表示しようとすることができないため、私は常に入れます(またはそのようなもの)。常にユーザーに保存/実行を強制し、ファイルタイプは拡張子によって推測されることがよくあります。

于 2010-05-25T07:56:50.270 に答える
2

画像の場合、最も信頼できるのはgetimagesize()です。その他のタイプについては、Fileinfo関数が適切です。

ただし、ck の言うことは 2 番目です。ダウンロードを強制する場合octet-streamは、ブラウザーまたはそれぞれのクライアント アプリケーションで何かが開かないようにするための最良の選択です。

于 2010-05-25T07:58:23.243 に答える
0

以下のリンクで、必要な Content-Type の値を確認できます。

インターネット メディアの種類

ここにリストするには多すぎます

于 2010-05-25T07:57:08.473 に答える
0

わかりました、私はそれを自分でやった。

使った

$type = filetype($file); //to know the type
于 2010-05-25T08:00:18.873 に答える
0

そこにMIME タイプを送信する必要があります。関数を使用して、PHP でこれを取得できmime_content_typeます。また、MIME タイプを含む多くのファイル情報を取得する方法を提供するFileinfo拡張機能もあります。

于 2010-05-25T08:11:29.157 に答える