CakePHP1.2 メディアビュー(ファイルダウンロード)

ユーザへバイナリファイル送信

<?php
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);
    }
}
?>

パラメータ

id

ID はファイル拡張を含むファイルサーバ上に置く場合のファイル名です。

name

ユーザに送信するファイル名を指定します。ファイルの拡張子をつけずに指定します。

download

ダウンロードさせるためにヘッダを送信するかどうかを示すブール値。

extension

ファイル拡張子。許可する MIME タイプの内部リストにマッチさせます。指定された MIME タイプがリスト内にない場合、ファイルはダウンロードされません。

path

最後のディレクトリ区切りを含んだフォルダ名。パスは、APP フォルダからの相対パスです。

mimeType

MediaView が内部的に保持している、受け付け許容 MIME タイプのリストにマージする、追加の MIME タイプの配列です。


ファイル名をパラメータで受け取って、pathinfoとかで情報取得するといいかも。

<?php
$data = pathinfo('test.php');
$data['dirname']; //ディレクトリ名
$data['basename']; //ファイル名
$data['extension']; //拡張子
?>

ファイル拡張子の取得(よく忘れるのでメモ)

<?php
***拡張子がわかっている場合
basename ("ファイル名","サフィックス");
?>

関数化 ありがたいっす。

<?php
function _delete_extention( $string='' ){
	if ( strcmp($string,'')==0 ){ return $string; }
    return preg_replace('/(.+)\.(.+?)$/','$1',$string);
}
?>


参考にさせていただきました。
http://ameblo.jp/linking/entry-10049428400.html
http://logic.stepserver.jp/data/archives/528.html
http://book.cakephp.org/ja/complete/94/%E3%83%93%E3%83%A5%E3%83%BC