前回Uploadpackで画像をwebrootより上に保存するだけを行ったので、
今回は出力まで。
<img alt="" src="/view/image/6/test.png">
というタグが生成される想定なので、
手っ取り早くViewController.php
にimage
というアクションを作成。
(色々なところで使うならAppController.php
とかコンポーネントにしてもいいかも。)
public function image($id, $image_name)
{
$data_dir = ROOT. DS. 'data'. DS. 'img'. DS;
$file = sprintf($data_dir. '%s/%s', $id, $image_name);
if (file_exists($file)) {
$this->response->file($file);
return $this->response;
}
return false;
}
画像が保存されているフォルダへのパスは、コア定義定数を参考にしてROOT
からのパスを指定。
$data_dir = ROOT. DS. 'data'. DS. 'img'. DS;
引数からファイルまでの絶対パスを生成して($file)、
ファイルが存在していればresponse
で表示する。
responseについてはファイルを送る参照。
これでwebrootより上に保存した画像が表示されるはず。