デフォルトだとwebrootの下のフォルダにファイルが保存されてしまうので、
path
を変更してwebrootより上の階層にファイルを保存したい。
やりたいことは簡単。path
をwebrootより上に指定すればいい。
https://github.com/szajbus/uploadpack#you-can-change-the-path-where-the-files-are-saved
上記URLを参考にCakePHP/data
にファイルを保存すべく設定してみる。
var $actsAs = array(
'UploadPack.Upload' => array(
'item' => array(
'path' => ':app/../data/img/:basename_:style.:extension'
)
)
);
:app
はappディレクトリのこと。CakePHP
はそれより上なので../
を指定。
これで任意の場所に保存ができる。
ただし、これだけだと保存場所だけが変わってヘルパーとの連携がとれない。
path
変更のところを読み進めていくとなにやらYou can change the url the helper points to when displaying or linking to uploaded files
と書いてある。
なんだか怪しい。
var $actsAs = array(
'UploadPack.Upload' => array(
'item' => array(
'url' => '/view(任意のController名)/image(任意のアクション)/:id/:basename_:style.:extension',
'path' => ':app/../data/img/:id/:basename_:style.:extension'
)
)
);
こんな感じにしてみる。
それからViewでドキュメント通り表示してみると↓
echo $this->Upload->uploadImage($image['Image'], 'Image.item');
HTMLが↓のように生成される。
<img alt="" src="/view/image/6/test.png">
あとは、/view/image
に引数を与えてアクセスした時に保存した場所から画像を出力できるようにすればいい。
画像の表示についてはこちら