1

私はサイトの単純なドキュメント管理システムに取り組んでいます - ユーザーは約 20 の異なるファイル タイプをアップロードでき、ドキュメントの名前が変更されて www の上のフォルダに保存されます。ドキュメント テーブルにエントリが作成され、入力されたメタデータをキャプチャします。ユーザーとアイテムは別のphpファイルを介して取得されるため、ファイルの保存場所はユーザーから隠されています。

ユーザーが単純な a href を使用してファイルをダウンロードするためにクリックすると、たとえば「view.php?doc=image.jpg」が呼び出されます。これを行うと、現在、ファイルがブラウザーで開くため、jpg はページを含むウィンドウを開きます。文字などの「wingdings」の

ユーザーが何をすべきかを決定し、私のアプリが上記の結果でブラウザーウィンドウで開こうとしないように、開く/保存するダイアログボックスを強制できるようにしたいと思います。

以前の投稿から、「a href」タグで MIME タイプを渡すことができないことがわかったので、他にどのようなオプションがありますか? たとえば、以下の view.php ファイルにヘッダー情報を入れることはできますか?

$_file = $_GET['doc'];

$filename = './dir/'.$_file; 

if (file_exists($filename)) { 
echo file_get_contents('./dir/'.$_file);
} else { 
echo "The file $_file does not exist"; 
} 
;
4

1 に答える 1

1

get_headers()を使用して目的のファイルの MIME タイプ ヘッダーを取得し、次にheader()を使用してそれらのヘッダーを表示しているファイルに出力できます。

または、単純にダウンロードを強制するには、次のようにします。

header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");

やるべきです。

于 2012-05-13T12:07:30.730 に答える