情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

サイトレビューサイト制作への道その6

画像の保存

1.管理者画面で画像選択をさせる

2.選択した画像をサーバに保存

3.まとめ

1.管理者画面で画像選択をさせる

今回はサイトごとのキャプチャ画像をデータベースに保存出来るようにしていきたいと思います。 まずは「ビュー」の「add.ctp」を編集していきます。

 //画像を選択する
                echo $this->Form->input('img_src',array(
                            'type'=>'file',
                            'div'=>false,
                            'required'=>'required',
                            ));

これを書くと、、、 f:id:nonaka-katuma-hal:20160810170246j:plain こうなります。

2.選択した画像をサーバに保存

次は「コントローラー」の「add」のところで

  //========================================================================================
            //画像データ保存
            //========================================================================================
            //サイト名取得
            $sitenameid = $this->request->data('Site.site_name');
            //一時保存画像の名前を保存
            $img = $this->request->data('Site.img_src.tmp_name');
            //画像の名前を保存
            $imgname = $this->request->data('Site.img_src.name');
            //ファイルパスを保存
            $uploaddir = "C:" . DS . "xampp" . DS . "htdocs" . DS ."sites" . DS . "webroot" . DS . "upimg" . DS;
            //結果的に使うアドレスを保存
            $uploadfile = $uploaddir . "$sitenameid.jpg";//basename($imgname);
            //ファイル移動
            move_uploaded_file($img,$uploadfile);   //.$fileName['img']    //$fileName[

            $img_src = IMAGES . $img;
            //ファイルパス保存
            $root = "http://localhost/sites/upimg/";
            //データにファイル名を表示する
            $request['Site']['img_src'] = $root . "$sitenameid.jpg";

これで画像の保存を一時的に「tmp」ファイルに保存して「upimg」フォルダに移動させてデータを正式に保存します。 f:id:nonaka-katuma-hal:20160810170738j:plain 保存するときのデータベースはこうなります。 ちなみにこれだと画像の名前がサイト名と同じになります、、、その辺はまた今度ということで、、、

3.まとめ

続々と管理者画面が出来上がってきているですがまだまだ完成には時間がかかると思われます、精進精進