1

Codeigniterではforce_download($file_name,$data)、ダウンロードヘルパーの関数を使用して、ブラウザーにファイルのダウンロードを強制できます。

But this is not what I need, I would like Codeigniter to respond a http header with the MIME type that the file corresponds to, so that the browser may or may not download the file, depending on whether there is an application registered for that MIME type on the client machine (if there is one, that application will open that file).

Is there a way of doing this with Codeigniter?

Many thanks to you all.

4

1 に答える 1

6

いいえ、Codeigniter ではできません。

一般的に言えば、PHP のようなサーバー側のテクノロジでは、コンテンツをクライアントに送信することしかできず、クライアントと直接対話することはできません。送信したコンテンツの一部をどうするかは、クライアント次第です。JavaScript のようなクライアント側のツールを使用しても、(ありがたいことに) クライアント マシンとのやり取りは限られています。あなたがしたいことは、ウェブサイトが訪問時に(自動的に)ソフトウェアをダウンロードし、クライアントマシンで実行できるようにすることです...

それはマルウェアと呼ばれます... ( ActiveXのメーカーが提供)

上記は直接の回答でした

「...クライアントマシンにそのMIMEタイプに登録されたアプリケーションがあるかどうかに応じて、ブラウザがファイルをダウンロードする場合とダウンロードしない場合があります(存在する場合、そのアプリケーションはそのファイルを開きます).

アップデート

プレーンな php ヘッダー操作で MIME タイプを設定できます。次の例は、最初の例としてphpheader()ドキュメントから直接取得したものです。

<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>
于 2011-02-15T20:26:06.607 に答える