チュートリアルで作ったようなブログに画像アップロード機能を実装しようとしています。
入力フォームに画像アップロードのフォームは作りました。
それを次の確認画面で表示させたいのですが、なぜか表示されません(chromeなのですが絵文字のようなマークでしか出ません)。

今考えている方法は、
■記事投稿画面のController
1.postされたらsessionに記入
2.$_filetmp_nameを取得
3.tempnam()app/webroot下のimgフォルダ内に一時ファイルを作成
4.move_uploaded_file()でアップロードした画像を、作成した一時ファイルに移す
5.作成した一時ファイルのディレクトリをsessionに記入
■確認画面のController
6.session から$_fileのnameと一時ファイルのディレクトリを取得
7.$this->setしてview画面で使えるようにする
■確認画面のView
8.html->imageで取得

こんな感じにすればできるのではないかと考えたのですが、
3のimg下にディレクトリを作ることがなぜかできません。/tmp下になって出てきてしまいます。
権限は777にしてありますが、ほかにどんな原因があるのでしょう。

またよりよい方法があれば教えていただきたいです。
(勉強を兼ねているのでpluginはできるだけ使わない方針で)

追加:contorllerのソースはこんな感じです。

> public function add() {
    if ($this->request->is('post')) {
        $this->Post->set($this->request->data);
          if($this->Post->validates()){
            $this->request->data['Post']['user_id'] = $this->Auth->user('id');
            $this->Session->write('Session',$this->request->data);
            if(isset($this->request->data['Post']['image'])){
                $file_name = $this->request->data('Post.image.tmp_name');
                $tmpfile = tempnam("/var/www/html/share/cake/cakephp-2.6.7/app/webroot/img/tmp","xxx");
                $this->Session->write('Session.xxx',$tmpfile);
                if(move_uploaded_file($file_name,$tmpfile)){
                    return $this->redirect(array('action'=>'confirm'));
                }else{ $this->Session->setFlash(__('ファイルをtmpに保存できませんでした。'));}
            }
          }
    }
}

public function confirm() {
    if ($this->Session->check('Session')) {
        $title = $this->Session->read('Session.Post.title');
        $body = $this->Session->read('Session.Post.body');
        //画像処理
        $file_name = $this->Session->read('Session.Post.image.name');
        if(isset($file_name)){
            //move_uploaded_file($file_name,$tmpfile);
            $image = $this->Session->read('Session.xxx');
            //mkdir($image,0777);
            $this->set('image',$image);
            }
        $this->set('title',$title);
        $this->set('body',$body);