3.9.5 メディアビュー

メディアビューを使用すると、ユーザにバイナリファイルを送信できます。たとえば、ファイルのディレクトリを webroot の外に置きたいかもしれません。ユーザが直接そのファイルにリンクするのを避けるためです。メディアビューを使用して、/app/ 内の特別なフォルダからファイル取り出すことができます。ファイルをユーザへ提供する前に認証をかけることができます。

メディアビューを使用するために、コントローラにデフォルトのビュークラスの代わりにメディアビュークラスを使用するように設定する必要があります。その後で、ファイルが置かれている場所を指定するために追加の引数を渡すだけです。

class ExampleController extends AppController {
    function download () {
        $this->view = 'Media';
        $params = array(
              'id' => 'example.zip',
              'name' => 'example',
              'download' => true,
              'extension' => 'zip',
              'path' => 'files' . DS
       );
       $this->set($params);
    }
}
  1. class ExampleController extends AppController {
  2. function download () {
  3. $this->view = 'Media';
  4. $params = array(
  5. 'id' => 'example.zip',
  6. 'name' => 'example',
  7. 'download' => true,
  8. 'extension' => 'zip',
  9. 'path' => 'files' . DS
  10. );
  11. $this->set($params);
  12. }
  13. }
パラメータ内容
idID はファイル拡張を含むファイルサーバ上に置く場合のファイル名です。
nameユーザに送信するファイル名を指定します。ファイルの拡張子をつけずに指定します。
downloadダウンロードさせるためにヘッダを送信するかどうかを示すブール値。
extensionファイル拡張子。許可する MIME タイプの内部リストにマッチさせます。指定された MIME タイプがリスト内にない場合、ファイルはダウンロードされません。
path最後のディレクトリ区切りを含んだフォルダ名。パスは、AP フォルダからの相対パスです。